c - C 中的枚举迭代

标签 c enums

我正在用 C 编程,我有某种枚举,假设有一个枚举名称 hello,它内部有 3 个属性 - A、B 和 C。

如何让 A 等于 0,B 等于 2,C 等于 3,而不是每个值都简单地递增 1?

提前致谢!

最佳答案

就这样

enum X
{
    A = 0,
    B = A + 2,
    C = B + 2
};

如果你想每次加2或者你只想第一次做

enum X
{
    A = 0,
    B = A + 2,
    C = B + 1
};

请注意,第一个将自动为 0,因此不需要 A = 0 它在我的回答中只是为了明确表示 A == 0 ,在第二种情况下,由于默认增量将为 1,因此也没有必要编写 C = B + 1,如果您将其应用于代码,它看起来像

enum X
{
    A,
    B = A + 2,
    C
};

你当然可以为每个枚举赋值,比如

enum X
{
    A = 0,
    B = 2,
    C = 3,
};

关于c - C 中的枚举迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28047915/

相关文章:

Java:颜色运算(加、减)? - 恒定类别的颜色

C:列表排序代码不起作用

c - 即使我使用 % 1000000007 它仍然结果为 0

c# - C# 中枚举的替代方法 - 嵌套

python - 使用名称来声明没有值的 python 枚举

java - 如何反转枚举?

类方法 : partial specialization if parameter is enum 上的 C++ 类型特征

c++ - 如果我在 C++ 中调用 new,但堆内存不足,会发生什么情况?

c - 是否可以#Include 到 "diamond inheritance"结构中?

无法获取字符串中的单个字符