extern是全局变量声明 只要声明全局变量就默认 前面加extern(程序员可以不加,但编译器默认加上)
若本文件 引用别的文件中的全局变量 一定要加上extern 声明一下在默认情况下,函数在声明和定义时就已经在其前面有extern了。例如,当我们声明函数时,
int foo(int arg1, char arg2);
在该函数的前面已经有了一个隐含的extern,并且编译器将它处理为
extern int foo(int arg1, char arg2);
全局变量的定义,一般都放在源文件里面。如果放在头文件,很有可能会导致重复定义。
全局变量在定义了之后,可以将声明放在对应的源文件中,则别的文件在使用该变量的时候可以通过include该头文件即可。
如果不想include,(只是单单想使用这一个变量,没有必要include),则extern 声明该变量即可。
全局变量和全局函数在定义的时候都会默认带有extern的。即使程序员自己不添加,编译器也会添加的。