一、静态局部变量
static关键字可以用来修饰局部变量,使得该变量在函数调用结束后仍然保持其原来的值。这种被修饰的变量称为静态局部变量。静态局部变量的生命周期和全局变量相同,但作用域仅限于定义它的函数内部。
“`clude
c() {tt = t++;tftt);
tain() {
输出结果为
“`t=1t=2t=3
tt的值都会加1。
二、静态全局变量
static关键字还可以用来修饰全局变量,使得该变量仅在定义它的文件内部可见,无法被其他文件访问。这种被修饰的变量称为静态全局变量。
“`clude
tt =
c() {t++;tftt);
tain() {
输出结果为
“`t=1t=2t=3
t仅在定义它的文件内部可见,无法被其他文件访问。
三、静态函数
static关键字还可以用来修饰函数,使得该函数仅在定义它的文件内部可见,无法被其他文件调用。这种被修饰的函数称为静态函数。
“`clude
c() {tf”);
tain() {
输出结果为
Hello, World!
c仅在定义它的文件内部可见,无法被其他文件调用。
四、静态代码块
static关键字还可以用来修饰代码块,使得该代码块仅在次执行时被执行,这种被修饰的代码块称为静态代码块。
“`clude
tain() {t flag =
if (flag == 0) {tf”);
flag = 1;
}
输出结果为
Hello, World!
从输出结果可以看出,静态代码块仅在次执行时被执行,
static关键字在C语言中有多种用法,可以用来修饰局部变量、全局变量、函数和代码块。静态局部变量可以使得变量在函数调用结束后仍然保持其原来的值,静态全局变量和静态函数可以使得变量和函数仅在定义它们的文件内部可见,无法被其他文件访问或调用,静态代码块可以使得代码块仅在次执行时被执行,