test.c
void foo()
{
extern int a;
a = 20;
printf("a=%d\n", a);
}
void print()
{
extern int a;
printf("a=%d\n", a);
}
void add()
{
int a = 10;
int b = 1;
a = b + 1;
}
main.c
extern int a = 0; //定义了全局变量a
int main()
{
printf("a=%d\n", a);
add(); //证明定义的a为局部变量
printf("a=%d\n", a);
print(); //声明未改变的全局变量a,打印其值
foo(); //声明全局变量a,并改变其值
print(); //声明改变后的全局变量a,打印其值
printf("a=%d\n", a);
return 0;
}
结果
C语言extern语法
extern可以多次声明全局变量,但只能定义一次全局变量
定义时可以省略,声明时为了可读性高可以填上