全局變量重復定義,fatal error LNK1169: 找到一個或多個多重定義的符號


1.在GlobeValue.h中定義了一個變量:

char gl_UID[256];

2.在b.cpp和e.cpp中分別引用GlobeValue.h,並且使用gl_UID的全局變量,

結果出現:fatal error LNK1169: 找到一個或多個多重定義的符號 的錯誤。

錯誤的原因:因為在gl_UID全局變量是在GlobeValue.h中定義的,所以呢,每次包含一次這個頭文件時,相當於又定義了一個這樣的變量。

正確的代碼書寫方法是:
在GlobeValue.h中使用extern char gl_UID,申明這個變量,在b.cpp中定義這個變量char gl_UID[256],在e.cpp中不需要定義。這樣,每次包含這個頭文件,遇到extern時,編譯器就知道在別處存在這個變量了,就不會重新定義了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM