MFC共享全域性變數

2021-07-26 06:25:20 字數 830 閱讀 9601

去網上找資料 看到一條

---------

自己定義乙個.h檔案,然後把所有的全域性變數放在其中,在每個使用變數的檔案中include  

好像一般都是這麼做的,尤其是一些比較大的工程,這樣在加其他的全程變數是很方便!

----------

但是 去測試的時候一直報錯

error lnk2005: "int snumofstudent" (?snumofstudent@@3ha) already defined in ***.obj

一想就覺得不對。

分析:有乙個 mdata.h檔案 包含了一些全域性變數、

---mdata.h

int s_int=0;

cstring s_mystr ="";

其餘的對其進行包含

------class a

#include "mdata.h"

#include "a.cpp"

class a

}

這裡會在a.obj中對s_int和s_mystr進行初始化 被當做了class a的乙個全域性變數

-------class b

#include"mdata.h"

#include"b.cpp"

class b

}

這裡也把s_int當做自己的類變數,但是s_int是全域性變數,所以會報錯redefined..

所以 。。求教這種方法!!

請指導。 是不是要設定靜態的??加static?測試過  依然會報錯啊

7 多執行緒 全域性變數 共享全域性變數

多執行緒 全域性變數 共享全域性變數 多執行緒可以對全域性變數進行修改,修改後的結果會影響下乙個執行緒 程序不可以共享全域性變數,子程序是複製父程序的全域性變數,修改後互不影響 from threading import thread import time,random g num 100 def...

MFC中定義全域性變數

全域性變數一般這樣定義 1.在一類的.cpp中定義 int myint 然後再在要用到的地方的.cpp裡extern int myint 這樣就可以用了。2.在stdafx.cpp中加入 int myint 然後在stdafx.h中加入 extern int myint 這樣定義的變數以後無論在什麼...

static全域性變數 全域性變數

1 全域性變數 外部變數 的說明之前再冠以static 就構成了靜態的全域性變數。全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方式。這兩者在儲存方式上並無不同。這兩者的區別在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,非靜態的全域性變數在各個原始檔中都是...