4

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

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

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

4

2 回答 2

7

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

不需要。在使用枚举的任何翻译单元中都需要定义枚举。

有没有其他方法可以在项目 B 中使用这种枚举类型?

不,您唯一的选择是使 A 中的标题对 B 可用,或者复制定义并找到某种方法来保持副本的一致性。

于 2013-11-13T13:20:40.253 回答
1

extern 仅告诉编译器特定符号的定义是其他文件,当前文件只有声明。这是您用来使全局变量在源代码中可见的机制。因此,对于您的情况, extern 不会这样做。

您可以做的是为项目和其中有一个通用的头文件:

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

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

于 2013-11-13T14:01:57.610 回答