extern關鍵字的作用

來源:趣味經驗館 2.33W

extern關鍵字的作用是extern是指當前變量或函數不是本源文件內聲明的,它是外部變量和外部函數。當我們在本文件中試圖引用一個外部聲明的全局變量或者函數的時候,可以在其前面加上extern。

extern關鍵字的作用


  extern可以修飾變量和函數,表示該變量或函數在其他的地方被定義(本源文件或其他源文件),在這裏聲明使用它,這樣多個源文件共享變量和函數;多個C源文件的編譯是獨立的,所以編譯器無法判斷多個源文件共享的變量的類型是否一致(只能判斷變量名和函數名是否一致);等到鏈接的時候(這個階段已經不再進程語法檢查了),多個源文件編譯後的。O文件鏈接成一個目標文件,如果有一個以上源文件對同一變量進行了初始化則報錯。
  
  1、extern變量名,在任何函數體外聲明或定義變量時,不加extern可能是定義也可能是聲明,編譯器選擇初始化的那個(最多一個地方對它進行了初始化),如果沒有初始化則任選其中一個作為定義,其他為聲明,但是加extern肯定是聲明;如果不想讓其它源文件鏈接到,則需要使用static關鍵字。
  
  2、extern 函數,函數默認是外部的(在函數體內或函數體外聲明一個外部函數,extern關鍵字均可以省略)如果不想讓其他源文件鏈接到,在函數前加static關鍵字。在寫程序的時候一定要注意外部函數的參數類型、參數個數和返回值類型,最好保持一致
  
  宏觀的理解:通過上面的分心來看,C程序裏,通過函數將功能區分開來。每個函數完成一個功能,而又將一片相關聯的功能集合在一個源程序裏,這些功能和相關聯的功能之間通常要有聯繫,而這種練習就是通過static和extern進行聯繫的。
  
  

熱門標籤