命名空间
变体
操作

静态存储期

来自 cppreference.cn
< c‎ | language

其标识符在声明时未带存储类说明符 _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