多檔案共享全域性變數和函式 原創

2022-03-19 18:31:51 字數 513 閱讀 9982

在乙個檔案中定義的變數和函式如何能被其他檔案使用,不會出現多重定義和未定義的編譯錯誤,這要使用好標頭檔案和關鍵字extern。

大家都知道extern是宣告外部變數的時候使用的,而函式宣告預設就是extern的。

如果在乙個檔案中定義乙個變數a,

int a;

那麼只有本檔案可以使用a變數,其他的檔案看不到。其他檔案可以使用extern宣告a

extern int a;

這個語句的功能是,a變數已經被其他檔案定義了,這裡宣告一下後,可以在本檔案中使用。如果在每個檔案中都宣告一下每個外部變數,難免有點太繁了,我們可以在乙個檔案中定義變數,然後在這個檔案對應的標頭檔案中對這個變數加以extern宣告,然後其它檔案要使用變數的時候,只要把這個標頭檔案包含進去就行了。

函式由於本身就是extern的,所以在標頭檔案中宣告的時候不需要加extern,只要像常規的宣告一下即可。補充說明一下,標頭檔案中只可以宣告變數和函式,不要出現任何形式的定義,否則很容易出現多重定義。所有的定義都交給源程式(*.c或者*.cpp)去定義。

C extern定義多檔案共享全域性變數

我覺得題主需要的回答是 把變數定義在函式外面 比如這樣 include include std string msg 這個就叫全域性變數 intmain 不過呢,這麼做以後你會逐漸逐漸遇到各種問題,比如說多個.cpp檔案都要用到同乙個全域性變數咋辦?你需要做的是在乙個.cpp裡定義這個變數,然後在標...

C 多檔案間函式呼叫及全域性變數共享問題

涉及extern識別符號宣告 在.h檔案中不要定義變數,通常為宣告變數,定義變數會出現 error lnk2005 已經在 obj 中定義 類似這樣的錯誤。根據c 規定,變數的宣告必須同時滿足兩個條件 1 宣告必須使用extern關鍵字 2 不能給變數賦初值例 extern int a 宣告 int...

python 多個檔案共享全域性變數

global關鍵字可以宣告全域性變數,但僅限於乙個檔案中 其他檔案可以通過import匯入,但修改並不影響原始值 若想在不同模組 py檔案 中使用同乙個全域性變數,可以使用以下方法 專門為全域性變數定義乙個 全域性變數管理模組 1.全域性變數管理模組 globalvar.py def init 初始...