静态存储期
来自 cppreference.cn
其标识符在声明时未带存储类说明符 _Thread_local,且具有外部或内部链接,或带有存储类说明符 static 的对象,拥有静态存储期。它的生命周期是程序的整个执行过程,其存储值在程序启动前仅被初始化一次。
[编辑] 注意
由于其存储值仅被初始化一次,具有静态存储期的对象可以用于分析函数的调用次数。
关键字 static 的另一个用途是文件作用域。
[编辑] 示例
运行此代码
#include <stdio.h> void f (void) { static int count = 0; // static variable int i = 0; // automatic variable printf("%d %d\n", i++, count++); } int main(void) { for (int ndx=0; ndx<10; ++ndx) f(); }
输出
0 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9