【C语言】static关键字的三种用法
C语言中的static
关键字是一个存储类说明符,它可以用来修饰变量和函数。static
关键字的主要作用是控制变量或函数的生命周期和可见性。以下是static
关键字的一些主要用法和含义:
-
局部静态变量:
- 当
static
修饰局部变量时,它将变量的生命周期从函数调用的开始延伸到程序的结束。这意味着静态局部变量在函数调用结束后不会消失,而是保持其值,直到程序结束。 - 静态局部变量只在声明它的文件内部可见,即它们具有文件作用域。
示例:
void func() {static int var = 10; // 静态局部变量++var;printf("%d\n", var); }
每次调用
func()
时,var
的值都会增加,因为它在函数调用之间保持其值。 - 当
-
全局静态变量:
- 当
static
修饰全局变量时,它将变量的可见性限制在声明它的文件内部,即它具有内部链接。这意味着其他文件无法访问这个变量,即使它在其他文件中被声明为extern
。
示例:
static int global_var = 20; // 只在当前文件可见
- 当
-
静态函数:
- 当
static
修饰函数时,它将函数的可见性限制在声明它的文件内部。这意味着该函数不能被其他文件调用,它具有内部链接。
示例:
static void my_function() {// 函数体 }
my_function()
只能在声明它的文件中被调用。 - 当