1,声明一个变量,必须加关键字extern
2,没有关键字extern,则就为变量的定义,无论这个变量定义时有没有初始化
3,只要定义变量时初始化了,即使前面加了关键字extern,也是定义,不是声明。(不过只有在函数体外时,才能够在定义且初始化时,加上extern关键字,这是为了const变量设定的)
4,多文件程序中,一个文件含有变量的定义,另外一个文件中含有变量的声明,定义只能有一次,声明不限。
5,非const变量,定义时默认是加了extern的,即在函数体外定义变量时,默认加了extern,说明这是一个全局变量,可以被其他文件访问(访问的前提是在这个文件中做了声明)。
但是const变量,默认是不加extern的,也就是即使在函数体外全局作用域定义一个const变量,也只能够在定义的这个文件访问,不能被其他文件访问。要想被其他文件访问,需要在定义const变量时,显示的加上extern关键词。
extern可以置于变量或者
函数前,以标示变量或者
函数的定义在别的文件(当然也有可能定义就在本文件中)中,提示编译器遇到此变量和
函数时在其他模块中寻找其定义。