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