//只有當extern聲明位於函數外部時,纔可以含有初始化式
//extern int a=10;//如果聲明有初始化,那麼它當作定義,即使有聲明標記extern
//int a; error:以初始化的extern聲明當作定義,所以該變量隨後的定義都是錯誤的
int main()
{
extern int a;//聲明(不是定義,不分配空間)
//extern int a;//程序中變量可以聲明多次
//extern可以置於變量或者函數前,以標示變量或者函數的定義在別的文件中,提示編譯器遇到此變量和函數時在其他模塊中尋找其定義。
//extern int a;
//這麼寫的話編譯器會認爲int a在別的編譯單元已經被定義了,變量定義在其他地方,並且引入到現在的編譯單元中,
//所以main域裏面就已經有int a的定義了,後面再寫int a當然會redifine
{
int a=10;//要加括號 ,無error
}
system("pause");
}
2.3.5
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.