1.给static 型变量赋值 不能是变量 否则会报错: error: initializer element is not constant
eg.
void fun(int a)
{
statci int x = 1; //static int x = a; 这样会报错
x++;
printf("%d\n",x);
}
int main(int argc,char *argv[])
{
fun(1);
fun(1);
return 0;
}
运行:2
3
2. static 的三个作用
a. 隐藏 在模块内部,在函数外部, 定义的 static 型全局变量会被初始化,它只能被本模块内的其它函数调用
b.隐藏 在模块内部,在函数外部,定义的 static 型函数,只能被本模块内其它函数调用
c.数据保持 在函数内部,只能被初始化一次,不管你调用多少次这个函数,其值都保持为上一次调用结束的时的值