【发布时间】:2011-10-18 18:46:35
【问题描述】:
我是一名 C++ 程序员,我很少需要处理 GCC “C”。我目前正在将一些代码从 C++ 转换为 C 以用于 GCC 编译器。
在 C++ 中,我将使用以下源代码。请注意,我将使用一个类作为范围。
C++源码
class Card {
public:
enum Suit {
Diamonds, Hearts, Clubs, Spades
};
};
class Weapon {
public:
enum WeaponType {
Rocks, Clubs, Guns
};
};
int main () {
Suit a = Card::Clubs;
WeaponType b = Weapon::Clubs
}
在“C”中没有类,也没有办法区分两个不同的“clubs”关键字。尝试编译时收到以下错误消息
错误 C2365:“俱乐部”:重新定义;以前的定义是 '枚举器'
C 源代码
enum Suit {
Diamonds, Hearts, Clubs, Spades
};
enum WeaponType {
Rocks, Clubs, Guns
};
int main () {
Suit a = Clubs;
WeaponType b = Clubs
}
所以我的问题是
- 如何在同一个文件中用相同的关键字声明两个不同的枚举?
- 如何为枚举添加范围,以便我可以使用相同的枚举名称为不同的枚举分配不同的变量?
【问题讨论】: