用extern声明外部变量:一个文件内的全局变量
#include <stdio.h>
int max(int,int);
int main( )
{
extern int a,b; //对全局变量a,b作提前引用声明
printf("%d\n", max(a,b));
return 0;
}
int a=15,b=-7; //定义全局变量a,b
int max(int x,int y)
{
int z;
z=x>y?x:y;
return z;
}
静态局部变量是存储在静态区的局部变量
#include <stdio.h>
int f(int a)
{
auto int b=0;
static int c=3;
b=b+1;
c=c+1;
return a+b+c;
}
int main( )
{
int a=2,i;
for(i=0; i<3; i++)
printf("%d ", f(a));
printf("\n");
return 0;
}
静态局部变量的应用场合,例:需要保留函数上一次调用结束时的值时
#include <stdio.h>
int count_calls()
{
static int ctr=0;
return ++ctr;
}
int main( )
{
int i;
for(i=0; i<10; i++)
printf("%d\n", count_calls());
return 0;
}