请教一个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