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時,編譯器就知道在別處存在這個變量了,就不會重新定義了。