C中的枚举迭代

时间:2015-01-20 14:34:42

标签: c enums

我用C编程,我有一些枚举,让我们说它是一个枚举名称hello,它里面有3个属性--A,B和C.

如何使A等于0,B等于2,C等于3,而不是每个值只增加1?

提前致谢!

3 个答案:

答案 0 :(得分:2)

就这样做

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分配一个值,例如

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

答案 1 :(得分:2)

C允许您使用常量表达式来定义enum值。由于在表达式中使用enum值和数字常量会生成常量表达式,因此可以执行以下操作:

enum hello {
    A // You can assign zero explicitly, or let the compiler do it for you
,   B = A + 2
,   C // Again, you can assign B+1, or let the compiler do it for you
};

答案 2 :(得分:2)

你可以试试这个。

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

否则你可以在不指定的情况下离开

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

虽然给A自动将值0分配给A.然后我们分配2.然后枚举将分配先前值的增量。所以C为值3。