關鍵字extern和static

2021-06-28 00:02:07 字數 756 閱讀 3985

關鍵字extern和static都能修飾函式和變數;

extern 

修飾函式:

extern可完整的宣告函式以及定義函式,但是預設省略,意思是外部外部函式,均為全域性變數

修飾變數

extern不可定義變數。切記

如果宣告和定義都採用extern修飾 如: extern int a;則程式中就不存在「a」的定義。

static

修飾函式

必須的完整帶static 宣告和定義函式。

修飾變數

修飾的是區域性變數,意味著區域性的變數的作用域不變,但生命週期直至程式結束。

修飾的是全域性變數,意味著全域性變數盡在本檔案中可呼叫。

全域性變數定義而沒有賦初值的話,預設為0;不論是外部還是區域性的全域性變數。

靜態的區域性變數預設為0,動態的區域性變數的值不定。

static 宣告和定義函式 ,不可省略。

extern和static關鍵字

在上一節我們把兩個程式檔案放在一起編譯鏈結,main.c用到的函式push pop和is empty由stack.c提供,其實有一點小問題,我們用 wall選項編譯main.c可以看到 gcc c main.c wall main.c in function main main.c 8 warnin...

extern關鍵字講解

基本解釋 extern可以置於變數或者函式 前,以標示變數或者函式 的定義在別的檔案中,提示編譯器遇到此變數和函式 時在其他模組中尋找其定義。另外,extern也可用來進行鏈結指定。2 問題 extern 變數 在乙個原始檔裡定義了乙個陣列 char a 6 在另外乙個檔案裡用下列語句進行了宣告 e...

extern關鍵字總結

關於extern關鍵字總結 1.extern的變數的原先定義的地方不能有static修飾 2.如果宣告是const int,那麼extern也必須是extern const int 3.兩個.cpp檔案不能定義同乙個變數名 4.標頭檔案基本可以說是不能定義變數的,否則只要有多個cpp檔案包含了該標頭...