4

#pragma once经常使用它,它在处理标头时似乎工作正常,但由于某种原因,以下创建了多个定义的链接器错误:

#pragma once
int someVariable=5;

不应该也pragma防止这种情况吗?

4

1 回答 1

7

编译指示不应该也阻止这种情况吗?

不,在这种情况下,如果此头文件包含在多个位置,则会创建 someVariable 的多个定义。如果 Bh 和 Ch 都包含你的头文件,那么将创建两个 someVariable。

更好的方法是仅在一个 .cpp 文件中定义变量并extern在其他地方使用。

于 2013-01-20T08:30:50.260 回答