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