c++ - 全域變數 該如何存放?
怪我咯
怪我咯 2017-07-03 11:42:03
0
1
1294

首先提出一個問題
書上網都說變數加上static 後作用域就是當前文件,不加作用域就是整個項目
是否意味著加了static 的變數只能在本文件使用?

我用一個檔案用來存放全域變數,我需要在多處使用這個全域變數, 依照書上的說法應該是不加static的, 可是會出現

错误    LNK2005    1    "XXX" (XXX) 已经在 XXX 

我加上 static 就沒有問題

我用的是 VS2017

求解釋這個問題, 我用這中方法存放全域可以嗎?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆(1)
三叔

是否表示 加了static 的變數只能在本文件使用? 是的。

平常的程式碼全域變數想怎麼用就怎麼用,但是在實際專案中,全域變數是能不用就不用,記住這一點。所以你的「把所有全域變數放在一個檔案」這種做法不可取。

你的報錯應該是重定義了,全域變數在進行obj連結過程中出現重定義,因為全域變數是外部連結屬性,也就是對所有文件可見。

哪個文件需要這個變量,你可以使其static,如果其它文件需要這個變量的值,你可以把這個變量放進類中使其成為類靜態成員變量,然後直接include該文件,A::x 引用即可。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!