1、在函数体内用static修饰的静态变量,当这个函数被调用后,静态变量的值保持不变,比如
#include<stdio.h>
int abc(int b)
{
static int a=10;
a=a+b;
printf(“a=%d\n”,a);
return a;
}
int main()
{
int i=10;
int j=30;
int result=0;
result=abc(i);
result=abc(j);
while(1);
return 0;
}
结果:a=20
a=50
也就是说第一次调用函数后a的值变为20,第二次调用函数,a的值当做20来用,而不是10;
2、在模块内(函数体外),只有该模块内的函数可以调用该静态变量
3、用static修饰的静态函数,只能被该模块内的函数调用,不能被模块外的函数调用
#include<stdio.h>
int abc(int b)
{
static int a=10;
a=a+b;
printf(“a=%d\n”,a);
return a;
}
int main()
{
int i=10;
int j=30;
int result=0;
result=abc(i);
result=abc(j);
while(1);
return 0;
}
结果:a=20
a=50
也就是说第一次调用函数后a的值变为20,第二次调用函数,a的值当做20来用,而不是10;
2、在模块内(函数体外),只有该模块内的函数可以调用该静态变量
3、用static修饰的静态函数,只能被该模块内的函数调用,不能被模块外的函数调用