外部變數與extern

2021-08-31 17:26:36 字數 591 閱讀 7959

[b]外部變數[/b]顧名思義就是定義在函式之外的變數。

它只能定義一次,定義後編譯程式將為它分配儲存單元。

如果需要訪問外部變數,則必須宣告相應的外部變數,宣告時可以用[b]extern[/b]語句[b]顯示宣告[/b],也可以通過上下文來[b]隱式宣告[/b]。

比如:

int max=5;

main()

這是顯示宣告。

當然,在某些情況下extern宣告是可以省略的,即隱式宣告。什麼時候可以省略呢?要滿足兩個條件,1個是外部變數的定義和呼叫者在同乙個原始檔內,2是外部變數的定義出現在使用它的函式之前,滿足上面兩個條件就可以省略。

所以第乙個例子中的extern宣告可以省略。寫成下面這樣:

int max=5;

main()

語法上沒有問題,但下面這樣就不能編譯通過了:

main()

int max=5;

要把注釋拿掉才行,順便說一句,如果max未顯示的初始化,那麼將[b]預設被初始化為0[/b]

謹慎extern申明外部變數

在c語言程式中,我們用extern關鍵字對某個變數作 外部變數申明 表示該變數是乙個已經定義的外部變數,編譯器就會自動地在所有原始檔裡面查詢該變數地定義。全域性變數的作用範圍只限於定義處到檔案結束。若想在定義之前使用全域性變數,就需要extern關鍵字來解決。include intmain int ...

extern 變數 函式

一 extern作用 宣告函式或者全域性變數的作用範圍,其宣告的函式和變數可以在本模組和其他模組使用 注意是宣告不是定義 例如,模組b 編譯單元 引用模組a定義的全域性變數或函式,只要包含a模組的標頭檔案即可,在編譯階段,模組b雖然找不到該函式值或變數,但它會在連線是從模組a生成的目標 中找到此函式...

70 extern的用法二和靜態外部變數

新建工作區 新增到當前的工作空間 ww 新建檔案 c source file 1.cpp int a 10 static int b 100 static修飾的全域性變數稱作 靜態外部變數,其他檔案不可以通過它的變數名來引用他 int p b 2.cpp include extern int a e...