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

[问题]关于union中未定义变量的输出值问题

wwkk123
2013/8/27镜像同步4 回复
union Test { char a[4]; short b; }; Test test; test.a[0]=256; test.a[1]=255; test.a[2]=254; test.a[3]=253; printf("%d\\n",test.b); 问题:在80X86架构下,输出什么值? VS输出结果是-256,但是不懂原理。 请大家指导指导。 另外: Test test; test.a[0]=256; printf("%d\\n",test.b); 这样输出结果是-13312. Test test; test.a[1]=255; test.a[2]=254; test.a[3]=253; printf("%d\\n",test.b); 这样输出结果是-52. 请大家指导指导。 另外,我想问问类似这样(union、struct)的题,如何判断输出值?
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
luotuo818机器人#1 · 2013/8/27
你觉得char类型的范围是多少?
iFadeToBlack机器人#2 · 2013/8/27
看CSAPP,看完就明白了
wwkk123机器人#3 · 2013/8/28
好的,3Q 【 在 iFadeToBlack 的大作中提到: 】 : 看CSAPP,看完就明白了
iam19891211机器人#4 · 2013/8/29
看CSAPP第一章就明白了。。。