C 中的枚举迭代
Enum iteration in C
我正在用 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
赋值,比如
enum X
{
A = 0,
B = 2,
C = 3,
};
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
};
你可以试试这个。
enum X
{
A = 0,
B = A + 2,
C = B + 1
};
否则你可以不分配就离开
enum X
{
A,
B = A + 2,
C
};
虽然给A是自动将值0赋值给A。之后我们赋值2。然后枚举将分配前一个值的增量。所以 C 为值 3.
我正在用 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
赋值,比如
enum X
{
A = 0,
B = 2,
C = 3,
};
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
};
你可以试试这个。
enum X
{
A = 0,
B = A + 2,
C = B + 1
};
否则你可以不分配就离开
enum X
{
A,
B = A + 2,
C
};
虽然给A是自动将值0赋值给A。之后我们赋值2。然后枚举将分配前一个值的增量。所以 C 为值 3.