当某些成员具有用户定义的值时,枚举成员的值
enum ABC{
A,
B,
C=5,
D,
E
};
D 和 E 是否保证大于 5?
A 和 B 是否保证小于 5(如果可能)?
编辑:如果我说C=1
会发生什么
enum ABC{
A,
B,
C=5,
D,
E
};
Are D and E guaranteed to be greater than 5 ?
Are A and B guaranteed to be smaller than 5 (if possible)?
edit: What would happen if i say C=1
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
它由 C++ 标准 7.2/1 保证:
It is guaranteed by C++ Standard 7.2/1:
在你的情况下,是的(参见基里尔的回答)。但是,请注意以下情况:
编译器不会避免与以前使用的值发生冲突,也不会尝试使每个值都大于所有先前的值。
在这种情况下,G 将大于 F,但不大于 C、D 或 E。
In your situation, yes (see Kirill's answer). However, beware the following situation:
The compiler will not avoid collisions with previously used values, nor will it try to make each value greater than all previous values.
In this case, G will be greater than F, but not C, D, or E.
是的,这是有保证的,A 和 B 的值必须分别为 0 和 1。
Yeah it is guaranteed and the value of A and B has to be 0 and 1 respectively.