static
关键字在 C 语言中有不同的用法,主要用于以下几个方面:
-
静态局部变量: 在函数内部使用
static
声明的变量是静态局部变量。这种变量在程序运行期间只被初始化一次,在函数退出后并不销毁,而是保留其数值直到程序结束。静态局部变量在函数调用时分配内存,在函数结束时释放内存。void func() { static int count = 0; // 静态局部变量 count++; printf("%d\n", count); }
-
静态全局变量: 在函数外部使用
static
声明的全局变量是静态全局变量。这种变量只能在声明它的源文件中使用,其他文件无法访问。静态全局变量与普通全局变量不同,它的作用域仅限于声明它的文件内部。static int globalVar = 10; // 静态全局变量,只能在当前文件中访问
-
静态函数: 在函数定义中使用
static
关键字声明的函数是静态函数。静态函数的作用域被限制在定义它的文件内部,在其他文件中无法访问该函数。使用静态函数可以避免与其他文件中的同名函数产生冲突。static int add(int a, int b) { // 静态函数,只能在当前文件中调用 return a + b; }
总的来说,static
关键字的使用方式可以让变量或函数的作用域限定在当前文件内部,避免与其他文件产生命名冲突,或者保留变量的状态直到程序结束。