头文件中的变量是否为全局范围?

时间:2013-11-19 07:34:14

标签: c++ header enums

假设我有一个头文件来存储枚举:

my_enum.h:

#ifndef my_enum_h
#define my_enum_h
enum my_enum {ONE, TWO};
#endif

然后我将此头文件包含在文件game.hgame.cc中。最后,我在game.h中添加了main.cc

我现在可以在main.cc中使用ONE和TWO。全局定义这些变量是否正常?

2 个答案:

答案 0 :(得分:1)

当你在main.cc中包含game.h时,因为game.h已经包含my_enum.h,所以可以从包含game.h的文件中访问它,还包括my_enum.h

解决方案1: 从代码中删除“#include my_enum.h”,因为它似乎不需要

解决方案2: 也许更改枚举的名称/

中的值

答案 1 :(得分:0)

如果在实现文件中包含标题。它与在实现文件中编写头文件的确切代码相同。

因此,此enum声明会包含在您的game.h中,随后会包含在main.cc中。

如果要删除它,则必须将其从头文件中删除,并在任何您想要使用它的地方声明它。