對於C語言標頭檔案裡面extern的理解

2021-06-27 22:06:24 字數 710 閱讀 3514

如果想在乙個c檔案裡面引用另外乙個c檔案裡面的變數,怎!麼!辦?

我們的做法是將變數在h檔案中宣告為ertern,然後在其他檔案中匯入這個h檔案。

這裡需要注意的是,如果匯入了h檔案,那就不能宣告同名的變數了。

另外,h檔案中的宣告變數必須是在別的檔案裡面已經宣告過的。這裡特別強調制!量!

如上圖。

左邊是h檔案,裡面宣告的乙個ppp變數。在右邊的檔案裡面引入h檔案。但是!這個ppp變數是不能直接用的。

warning: data definition has no type or storage class [enabled by default]

ppp = 1;^

這個ppp實際上還是未定義的變數。所以h檔案出現不帶extern的變數宣告是沒有意義的。

但是巨集定義和typedef都是可以在h檔案裡面的。如果在h檔案裡面已經typedef的,在匯入h的c檔案裡面就可以直接用了,而且在次typedef就是重複。

所以這裡總結一下h檔案裡面有什麼。

1 #define

2typedef

3extern 變數

4函式宣告

c語言標頭檔案

c語言標頭檔案 每個c c程式通常分為兩個檔案。乙個檔案用於儲存 程式的宣告 declaration 稱為標頭檔案。另乙個檔案用於儲存 程式的實現 implementation 稱為定義 definition 檔案。c c程式的標頭檔案以 h 為字尾,c程式的定義檔案以 c 為字尾,c 程式的定義檔...

C語言標頭檔案

早期的程式語言如 basic fortran 沒有標頭檔案的概念,c c 語言的初學者雖然會 用使用標頭檔案,但常常不明其理。這裡對頭檔案的作用略作解釋 1 通過標頭檔案來呼叫庫功能。在很多場合,源 不便 或不准 向使用者公布,只要向使用者提供標頭檔案和二進位制的庫即可。使用者只需要按照標頭檔案中的...

C語言標頭檔案

標頭檔案結構 標頭檔案一般由3部分組成 1.標頭檔案的開頭版本和版權的宣告 2.預處理塊 3.函式和類結構的宣告 question1 include和 include a.h 有什麼區別?include引用的是標準庫的標頭檔案,也就是說編譯器是從標準庫進行開始搜尋,而 include a.h 則是屬...