問題:如何在C++中定義全局變量時避免重複定義呢?
今天遇到問題,全局變量重定義錯誤,印象中記得要加extern,但是怎麼都不對,找資料後得到了解決方案,記之。(參考文獻:http://www.xjktarena.com/jswz/121.html)
解決方案:
只要在定義時儘量在.cpp文件中進行,而不要在.h 文件中定義。定義好了之後,可以在.h文件中利用extern關鍵字進行聲明。如果在.h文件中定義的話,多層包含就可能會引起重複定義的錯誤。
例子:
在params.cpp中定義全局變量
params.cpp
int a;//定義
params.h
extern int a;//聲明
然後其他文件要使用這些變量的時候只要#include "params.h"就可以了,而且不會引起重複定義的錯誤.