c 多個檔案中共用乙個全域性變數 變數跨檔案使用

2022-01-22 08:58:16 字數 721 閱讀 9487

雖然很多部落格都寫過這個了 但是 我還是繼續補充的詳細一點吧  畢竟很多人新手的程式是我們寫部落格的人難以想象不是嗎

想要跨檔案使用 肯定是要用到 extern宣告變數了  不懂自己查

舉個例子:

標頭檔案:source.h   原始檔:source.cpp       

其它原始檔:t1.cpp  t2.cpp  t3.cpp, 這些原始檔都包含標頭檔案source.h。

需要定義乙個全域性變數供這些原始檔中使用:

1、在 source.h宣告全域性變數: extern int a;

2、在source.cpp中定義該全域性變數:int a =100; //這裡隨便賦值多少   注意在全域性區

然後準備部分就差不多了  那麼如何在t1.cpp  t2.cpp  t3.cpp檔案中共用呢?

只要在t1.cpp  t2.cpp  t3.cpp的全域性**區  加上source.h宣告的 extern int a;

就可以使用了  注意這時候就不能再全域性區域進行賦值操作了  不然會判定你重定義的  我們對其更改賦值什麼的操作 都放在函式裡就行了

例如:

#include 「source.h」

........

........

extern

int a;//

全域性**區轉置宣告

//在函式中賦值更改公用變數 其他檔案要使用也是如此

fun()

C 多個檔案共用乙個全域性變數

關鍵解決點是使用extern,還有就是理解c 宣告 定義 賦值。宣告是告訴程式,這個地方有個變數,定義是為變數開闢空間,賦值是開闢空間後給值 例如下面這個a.cpp程式 include myhead.h include int main 我明明沒有定義a,為什麼沒有報錯呢?原因在於我引入了我自定義的...

c 多個原始檔共用乙個全域性變數(e

例子 標頭檔案 state.h 原始檔 state.cpp 其它原始檔 t1.cpp t2.cpp t3.cpp,這些原始檔都包含標頭檔案state.h。需要定義乙個全域性變數供這些原始檔中使用 方法如下 1 在 state.h宣告全域性變數 extern int a 2 在state.cpp中定義...

使用乙個全域性變數

然而,有區域性變數同名的全域性變數通常是製造麻煩,並應盡可能避免。使用匈牙利表示法,它是常見的全域性變數 g 字首。這是區分全域性變數與區域性變數的一種簡單的方式,避免了由於被隱藏變數命名衝突。新的程式設計師經常使用全域性變數很多,因為他們是容易的工作,特別是當涉及到許多功能。然而,這是乙個非常糟糕...