2.3.5

//只有當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");
}

發佈了22 篇原創文章 · 獲贊 1 · 訪問量 3063
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章