[問題] global variable的問題
請問通常global variable會宣告在.cpp還是.h呢?
之前曾經將global variable寫在.h
但add Thread.cpp to project後compiler會出現warning訊息:
(ex: in main.h declare int Variable = 0;)
[Linker Warning] Public symbol '_Variable' defined in both module D:\TRP
CODE\TRP 5.1\MAIN.OBJ and D:\TRP CODE\TRP 5.1\THREAD.OBJ
後來查了網路,發現要寫成
(in main.h) extern int Variable;
(in main.cpp) int Variable = 0;
這樣子才不會有warning message產生,當中的原因是什麼呢?
還有若是我將原本在main.h的變數改成 static int Variable = 0;
也可以避免warning message產生,這又是為什麼呢?
(可以請問將variable設static的意義是?)
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.126.97.143
→
06/09 01:04, , 1F
06/09 01:04, 1F
→
06/09 01:06, , 2F
06/09 01:06, 2F
推
06/09 01:08, , 3F
06/09 01:08, 3F
→
06/09 01:10, , 4F
06/09 01:10, 4F
→
06/09 01:11, , 5F
06/09 01:11, 5F
→
06/09 01:11, , 6F
06/09 01:11, 6F
推
06/09 11:08, , 7F
06/09 11:08, 7F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 5 篇):