去網上找資料 看到一條
---------
自己定義乙個.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 就構成了靜態的全域性變數。全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方式。這兩者在儲存方式上並無不同。這兩者的區別在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,非靜態的全域性變數在各個原始檔中都是...