首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请问一个union 的有关问题

2012-08-30 
请教一个union 的问题union un{char str[4]short val}aa.val0a.str[0]256a.str[1]255a.str[2]25

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


热点排行