Static storage duration
静态存储时间
一个对象,其标识符在没有存储类说明符的情况下声明_Thread_local
,并且具有外部或内部链接或存储类说明符static
,具有静态存储持续时间。它的生命周期是程序的整个执行过程,在程序启动之前,它的存储值只被初始化一次。
注意
由于其存储值仅初始化一次,因此具有静态存储持续时间的对象可以剖析函数的调用。
关键字的另一个用途static
是文件范围。
例
剖析函数f()的调用。
#include <stdio.h>
void f (void)
{
static int count = 0; /* static variable */
int i = 0; /* automatic variable */
printf("%d %d\n", i++,count++
return;
}
int main(void)
{
for (int ndx=0; ndx<10; ++ndx)
f(
return 0;
}
可能的输出:
0 0
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0 9