在本地变量定义时加上static修饰符就成为静态本地变量
本地变量的生存期,只有在进去函数的时候才有,离开时就没有了,而当函数离开的时候,静态本地变量会继续存在并保持其值
静态本地变量的初始化只会在第一次进入这个函数时做,以后进入函数时会保持上次离开时的值
int main( int argc, char const *argv[])
{
f();
f();
f();
return 0 ;
}
int f(void)
{
int All = 1;
printf("in %s All = %d \n",__func__,All);
All+=2 ;
printf("agn in %s All = %d\n",__func__,All);
return All;
}
in f All = 1
agn in f All = 3
in f All = 1
agn in f All = 3
in f All = 1
agn in f All