-
static int a;可以延长局部变量的生存周期。
静态局部变量是在函数体内部声明的,它们的生命周期贯穿程序的整个执行过程,但作用域仅限于该函数内部,因此只能被该函数内部的操作所访问。
虽然静态局部变量的作用域是局部的,但它的生命周期(lifetime)是整个程序运行期间。这意味着它在程序第一次调用该函数时被初始化,并且在后续调用中保留其值,不会被重新初始化,且默认初始化为0。 -
静态全局变量是在文件范围内声明的,但使用static关键字将它们的作用域限制在声明的源文件内。这意味着其他源文件无法直接访问或引用该变量,从而实现了变量的文件皮肤性。
通过这种方式,静态全局变量提供了一种在文件范围内共享数据而不污染全局命名空间的机制。
也是static int b;只不过在函数体外部。
3.静态变量都只会初始化一次。
在其他文件中使用全局变量使用
extern int a;//注意不能赋值。
静态全局变量不能在其他文件中访问。
4.如果函数在一个C文件中定义(即包含函数体),并且该函数没有被标记为 static,那么可以通过在其他C文件中包含该函数的声明来访问该函数。声明函数的典型方法是在其他文件中使用函数的原型(prototype)或函数的外部声明。
5.const 将变量常量化。
const π 3.14;
const π;//若没有初始化,则默认其初始值为0
6.