命名空间
变体
操作

静态存储期限

来自 cppreference.com
< c‎ | 语言

如果一个对象的标识符在声明时没有使用存储类说明符 _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