读书人

请问一个union 的有关问题

发布时间: 2012-08-30 09:55:54 作者: rapoo

请教一个union 的问题
union un{
char str[4];
short val;
}a;
a.val=0;
a.str[0]=256;
a.str[1]=255;
a.str[2]=254;
a.str[3]=253;

printf("%d\n",a.val);

这个打印的结果是 -256 ,能给解释下么?



[解决办法]
这个很复杂么?小端机器上不就是0xff00么?
value不就是str的低两位么?
str[0]=256溢出截断实际为0
str[1]=255=0xff


读书人网 >C语言

热点推荐