關鍵字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檔案包含了該標頭...