在C语言中,关键字static有以下几种作用:
静态变量:static关键字可以用于声明静态变量,静态变量存储在静态存储区,在程序运行期间一直存在,其作用域为局部作用域,但其生命周期为整个程序运行期间。静态变量的初始值默认为0,只会被初始化一次。
静态函数:static关键字可以用于声明静态函数,静态函数只能在当前文件中被调用,不能被其他文件调用。静态函数的作用主要是限制函数的作用域,避免与其他文件中同名的函数发生冲突。
静态全局变量:static关键字可以用于声明静态全局变量,静态全局变量的作用域限制在声明它的源文件内,其他文件无法访问。静态全局变量在程序运行期间一直存在,其生命周期也为整个程序运行期间。
静态成员变量:如果将static关键字用于类中的成员变量,则该成员变量为静态成员变量,静态成员变量属于整个类而不属于对象,它在所有的对象中都是共享的。静态成员变量的初始值默认为0,只会被初始化一次。
总的来说,static关键字的作用是限制变量或函数的作用域,以及改变其存储方式,使其在程序运行期间一直存在。