在 C 语言中,static
关键字有以下3种作用,分别是:静态变量,静态函数,静态全局变量,接下来我们分别来看一下以下三个函数:
当 static
关键字用于变量声明时,表示这个变量是静态变量,其生命周期与程序的整个运行期间相同。静态变量在函数内部或者文件内部声明,可以在函数内部或者文件内部使用,但不能在其他函数或者文件中访问。如果在函数内部使用 static
关键字声明静态变量,则该变量在函数每次调用时不会被重新初始化,而是保留上一次调用的值。在文件内部使用 static
关键字声明静态变量,则该变量只能被该文件中的函数所访问,不能被其他文件所访问。
例如,以下代码声明了一个静态变量 count
:
void example() { static int count = 0; // 声明静态变量 count,初值为 0 count++; printf("count = %d\n", count); }
在这个例子中,count
是一个静态变量,它的生命周期与程序的整个运行期间相同,每次调用 example()
函数时,count
的值都会增加,并且保留上一次调用的值。
- 静态函数
当 static
关键字用于函数声明时,表示这个函数是静态函数,只能在当前文件中使用,不能被其他文件所访问。
例如,以下代码声明了一个静态函数 add()
:
static int add(int a, int b) { return a + b; }
在这个例子中,add()
是一个静态函数,它只能在当前文件中使用,不能被其他文件所访问。
当 static
关键字用于全局变量声明时,表示这个全局变量的作用域仅限于当前文件,不能被其他文件所访问。
例如,以下代码声明了一个静态全局变量 x
:
static int x = 0; // 声明静态全局变量 x,初值为 0
在这个例子中,x
是一个静态全局变量,它的作用域仅限于当前文件,不能被其他文件所访问。
评论