我有一個全局的,我想分享多個文件。讓我們把它叫做:跨多個源文件使用全局(使用extern多次)
library.cpp:
HookContext g_context;
然後,我有希望訪問這一全球其他兩個文件:
A.cpp:
extern HookContext g_context;
B.cpp;
extern HookContext g_context;
當我所有這些文件鏈接在一起,我的鏈接抱怨以下警告:
B.OBJ:錯誤LNK2005:(?g_context @@ 3VHookContext @@ A) 「類HookContext g_context」 已定義在A.obj
我使用extern不正確嗎?我應該怎樣做才能訪問A和B中的上下文?
注意:在這種情況下,我不希望使用任何頭文件來定義上下文。
謝謝
是b的一個子類型嗎? – L7ColWinters 2012-02-06 05:21:29
不,A和B是定義完全不同類的行爲的完全不同的文件。 – JoshG 2012-02-06 05:23:44
精闢回答了[這裏](http://stackoverflow.com/questions/1433204/what-are-extern-variables-in-c) – bluefalcon 2012-02-06 05:24:12