extern int a; //声明一个全局变量a
int a; //定义一个全局变量a
extern int a =0 ; //定义一个全局变量a 并给初值。一旦给予赋值,一定是定义,定义才会分配存储空间。
int a =0; //定义一个全局变量a,并给初值,
声明之后你不能直接使用这个变量,需要定义之后才能使用。
定义只能出现在一处。也就是说,不管是int a;还是int a=0;都只能出现一次,而那个extern int a可以出现很多次。
当你要引用一个全局变量的时候,你就要声明extern int a;这时候extern不能省略,因为省略了,就变成int a;这是一个定义,不是声明。
案例分析;