如何使用extern声明枚举类型

时间:2013-11-13 13:17:52

标签: c++ enums

现在我有两个VC项目:A和B.我正在使用Project B,我需要使用项目A中头文件中定义的enum类型,我不能包含此头文件。< / p>

我可以使用extern将枚举类型的可见性扩展到Project B吗?

如果是这样,我该怎么办?如果没有,是否有其他方法可以在项目B中使用此enum类型?

2 个答案:

答案 0 :(得分:6)

  

我可以使用extern将枚举类型的可见性扩展到Project B吗?

没有。任何使用枚举的翻译单元都需要定义枚举。

  

在项目B中是否还有其他方法可以使用此枚举类型?

没有。您唯一的选择是使A中的标题可用于B,或复制定义并找到一些方法来保持副本的一致性。

答案 1 :(得分:1)

extern只告诉编译器特定符号的定义是当前只有声明的其他文件。这是用于在源代码中显示全局变量的机制。 所以对于你的情况,extern不会这样做。

你可以做的是为项目和那里都有一个共同的头文件:

typedef enum{
...
//enum members
...
};

这样两个项目都可以使用相同的枚举。