在C语言中,static关键字有以下几种作用:
静态变量:在函数内部使用static修饰的变量被称为静态变量,它的生命周期与程序的整个运行周期相同,而不是仅在函数被调用时存在。静态变量的作用域仍然是在声明它的函数内部,但是它在函数调用结束后仍然保持其值,下一次调用该函数时,静态变量的值将保持上一次调用结束时的值。
静态函数:在函数声明中使用static关键字修饰,表示该函数只在定义它的源文件中可见,无法被其他文件调用。静态函数的作用主要是限制函数的作用域,防止与其他源文件中的函数命名冲突。
静态全局变量:在函数外部使用static修饰的变量被称为静态全局变量,其作用域仅限于定义它的源文件内部。静态全局变量在程序整个运行周期内都存在,但是只能在定义它的源文件中被访问,其他源文件无法访问它。
静态成员变量:在面向对象编程中,static关键字也可以用于类的成员变量,表示该成员变量为类的共享变量,所有该类的对象共享同一个静态成员变量的内存空间。
总结起来,static的作用可以归纳为:限制作用域、延长生命周期、共享内存空间。