1,extern可以置于變量聲明前;
2,extern也可以置于函數聲明前;
通過這種行為它告訴編譯器:該變量/函數的定義已經存在在某個地方了,讓編譯器到其他的模塊去尋找它的定義。
3, extern “C”
使用extern“C”主要是因為C++語言在編譯的時候為了實現多態,會將函數名和函數結合起來形成另外一種函數名(總之就是說編譯后的函數名與你之前自己聲明時的函數名會不一樣),而C語言中無多態的概念當然也就不會有這種奇異的名字變化問題。這是問題就出現了,當你要在C++中調用C函數時,由于名字的不同,所以它會找不到所調用的這個函數的定義,因而會出錯。
為了解決這一C與C++的矛盾沖突,就有了extern “C”。