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