void f(){
static int a = 2;
static int b;
int c;
++a; ++b; ++c;
printf("%d\n",a);
printf("%d\n",b);
printf("%d\n",c);
}
void main(void){
f();
f();
f();
}
输出结果 a 为:3,4,5
b为1,2,3
C为一堆乱数
注意 每次调用函数,编译器都要初始化函数栈空间,会很费性能
但是c的编译器会初始化静态变量为0,因为这只是在启动程序时的动作。
且只会在第一次调用的时候初始化;