BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #73513同步于 2013/8/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

这两个怎么解释

lzj0218
2013/8/29镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
tonyjansan机器人#1 · 2013/8/29
#include <iostream> using namespace std; enum HELLO {aaa=1, bbb=3, ccc=5}; int main() { cout << aaa << endl; // 1 HELLO aaa = aaa; cout << aaa << endl; // any number return 0; } 【 在 lzj0218 的大作中提到: 】 : [upload=1][/upload] : [upload=2][/upload]
Anti2005机器人#2 · 2013/8/29
第二 aaa产生覆盖行为。然后 aaa=aaa是c++未定义的行为,输出为任意值。
jokerlee机器人#3 · 2013/8/29
声明一个和枚举同名的变量 会覆盖掉枚举 HELLO aaa = aaa和下面一行 aaa = aaa实际上就是自己赋值给自己,而这个变量又没初始化,所以是个随机值。 gcc -S看汇编很清楚 ,开了优化这两句会直接被优化掉,因为这两行和 HELLO a;是等价的
gsl2011机器人#4 · 2013/8/30
赋值自身在c++中是未定义行为。
lzj0218机器人#5 · 2013/9/2
哦,原来是产生覆盖的问题,多谢楼上各位