gpt4 book ai didi

c++ - 从 C++ 角度看 C 中的枚举

转载 作者:太空狗 更新时间:2023-10-29 19:40:54 25 4
gpt4 key购买 nike

我是一名 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”关键字。尝试编译时出现以下错误消息

error C2365: 'Clubs' : redefinition; previous definition was 'enumerator'

C 源代码

enum Suit {
Diamonds, Hearts, Clubs, Spades
};

enum WeaponType {
Rocks, Clubs, Guns
};

int main () {
Suit a = Clubs;
WeaponType b = Clubs
}

所以我的问题是

  • 如何在同一文件中使用相同的关键字声明两个不同的枚举?
  • 如何为枚举添加作用域,以便我可以使用相同的枚举名称为不同的变量分配不同的枚举?

最佳答案

像过去一样:

enum Suit {
ST_Diamonds, ST_Hearts, ST_Clubs, ST_Spades
};

enum WeaponType {
WT_Rocks, WT_Clubs, WT_Guns
};

int main () {
Suit a = ST_Clubs;
WeaponType b = WT_Clubs;
return 0;
}

关于c++ - 从 C++ 角度看 C 中的枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7812105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com