extern關(guān)鍵字可以置于變量或者函數(shù)前,以標(biāo)示變量或者函數(shù)的定義在別的文件中,提示編譯器遇到此變量和函數(shù)時(shí)在其他模塊中尋找其定義。這里起到的是聲明作用范圍的用處。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、網(wǎng)絡(luò)空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、鎮(zhèn)江網(wǎng)站維護(hù)、網(wǎng)站推廣。
告訴編譯器這個(gè)變量或者函數(shù)的定義不在當(dāng)前的代碼中,等到連接時(shí)從別的地方找,如果找到了就可以正常編譯,如果找不到就編譯失敗。
extern在c中就是個(gè)外部申明,因?yàn)镃是先申明再使用,當(dāng)你想調(diào)用的變量或者函數(shù)不在你的模塊當(dāng)中,你可以使用外部申明。
extern是全局變量聲明,只要聲明全局變量就默認(rèn) 前面加extern(程序員可以不加,但編譯器默認(rèn)加上)若本文件 引用別的文件中的全局變量 一定要加上extern 聲明一下。
1、默認(rèn)都為外部 ,就是可以被別的文件調(diào)用,前面static 修飾的話,則只能在本文件域中被調(diào)用。
內(nèi)部函數(shù):如果一個(gè)函數(shù)只能被本文件中其他函數(shù)所調(diào)用,它稱為內(nèi)部函數(shù)。
第一, 代碼在內(nèi)部不過是因?yàn)槟愕膮?shù)用到student類型,那個(gè)時(shí)候student類型還沒有了,程序怎么能過呢。第二,外部實(shí)現(xiàn)一般都是實(shí)現(xiàn)的virtual函數(shù),這相當(dāng)于一個(gè)接口。
當(dāng)一個(gè)源程序由多個(gè)源文件組成時(shí),C語言根據(jù)函數(shù)能否被其它源文件中的函數(shù)調(diào)用,將函數(shù)分為內(nèi)部函數(shù)和外部函數(shù)。
對(duì)于你提的問題,你要明白的是作用域,在不用的地方申明,那作用域也就不同,那么在main里邊聲明也就只能在main函數(shù)里起作用(函數(shù)內(nèi)聲明叫局部聲明,反之在函數(shù)外部聲明就叫全局聲明)。