现在我有两个 VC 项目:A 和 B。我正在使用项目 B,我需要使用enum
项目 A 的头文件中定义的类型,我不能包含这个头文件。
我可以使用extern
将枚举类型的可见性扩展到项目 B 吗?
如果是这样,我该怎么做?如果没有,还有其他方法可以enum
在项目 B 中使用这种类型吗?
我可以使用 extern 将枚举类型的可见性扩展到项目 B 吗?
不需要。在使用枚举的任何翻译单元中都需要定义枚举。
有没有其他方法可以在项目 B 中使用这种枚举类型?
不,您唯一的选择是使 A 中的标题对 B 可用,或者复制定义并找到某种方法来保持副本的一致性。
extern 仅告诉编译器特定符号的定义是其他文件,当前文件只有声明。这是您用来使全局变量在源代码中可见的机制。因此,对于您的情况, extern 不会这样做。
您可以做的是为项目和其中有一个通用的头文件:
typedef enum{
...
//enum members
...
};
这样两个项目都可以使用相同的枚举。