在搞清楚這個(gè)問題之前额获,需要在頭腦里整理下C語言的術(shù)語够庙。
記住,C語言中的對(duì)象必須有且只有一個(gè)定義抄邀,但它可以有多個(gè)extern聲明;
這里說的”對(duì)象”與C++里的對(duì)象并無關(guān)系耘眨,這里的”對(duì)象”只是跟鏈接器有關(guān)的一些”東西”,比如函數(shù)或者變量境肾;
定義:
是一種特殊的聲明,它創(chuàng)建了一個(gè)對(duì)象剔难;
聲明:
簡(jiǎn)單的說明了在其它地方創(chuàng)建的對(duì)象的名字,它允許你使用這個(gè)名字;
讓我們回顧一下這兩個(gè)術(shù)語:
定義:
只能出現(xiàn)在一個(gè)地方准夷;確定對(duì)象的類型并分配內(nèi)存钥飞,用于創(chuàng)建新的對(duì)象莺掠;
如:int my_array[10];
聲明:可以多次出現(xiàn)衫嵌;描述對(duì)象的類型,用于指代其它地方定義的對(duì)象(例如在其它文件里)
如:extern int my_array[];