[ 測試用例 ]
#include extern char c;
extern int i;
int main()
[ 期望輸出 ]
兩個一樣的值
[ 實際輸出 ]
如果沒有分配儲存空間,那麼為什麼結果卻輸出了變數所占用的空間大小。
[ a ]
乙個變數得宣告,肯定是會分配空間的,不分配那在哪儲存,又在哪取值呢?其實我們說"變數的宣告是不會再次分配空間的",這是沒有問題的吧?這個extern其實也是一樣,也是宣告(),也不會再次分配空間。 一般的(是一般的),定義的變數都會獲得分配空間的機會,但是extern其實只是起到宣告的作用,不是定義,只是告訴編譯器,這個變數不是我(本檔案)定義的,我只是用別人(其他的檔案,一般在.c檔案)的的而已。所以變數的空間是別人定義的時候分配的,不是我給的,我只是用別人的而已。 (感謝的補充說明)
extern宣告跨檔案變數
file dog.h class dog int leg static int num1 定義靜態成員變數 file dog.cpp include dog.h int num2 static int num3 定義靜態成員變數,num3僅限於本檔案使用 file main.cpp include ...
c 變數宣告extern說明
當使用extern關鍵字修飾變數 未初始化 表示變數宣告。當在另乙個檔案中,為extern關鍵字修飾的變數賦值時,表示變數定義。宣告在標頭檔案裡面,定義的檔案裡面包含有該宣告的標頭檔案。header.件如下 ifndef header h define header h 定義global x變數 在...
C語言extern宣告辨析
1 基本解釋 extern可以置於變數或者函式 前,以標示變數或者函式 的定義在別的檔案中,提示編譯器遇到此變數和函式 時在其他模組中尋找其定義。另外,extern也可用來進行鏈結指定。2 問題 extern 變數 在乙個原始檔裡定義了乙個陣列 char a 6 在另外乙個檔案裡用下列語句進行了宣告...