1,聲明一個變量,必須加關鍵字extern
2,沒有關鍵字extern,則就為變量的定義,無論這個變量定義時有沒有初始化
3,只要定義變量時初始化了,即使前面加了關鍵字extern,也是定義,不是聲明。(不過只有在函數體外時,才能夠在定義且初始化時,加上extern關鍵字,這是為了const變量設定的)
4,多文件程序中,一個文件含有變量的定義,另外一個文件中含有變量的聲明,定義只能有一次,聲明不限。
5,非const變量,定義時默認是加了extern的,即在函數體外定義變量時,默認加了extern,說明這是一個全局變量,可以被其他文件訪問(訪問的前提是在這個文件中做了聲明)。
但是const變量,默認是不加extern的,也就是即使在函數體外全局作用域定義一個const變量,也只能夠在定義的這個文件訪問,不能被其他文件訪問。要想被其他文件訪問,需要在定義const變量時,顯示的加上extern關鍵詞?!?br />
extern可以置于變量或者
函數前,以標示變量或者
函數的定義在別的文件(當然也有可能定義就在本文件中)中,提示編譯器遇到此變量和
函數時在其他模塊中尋找其定義。