打印

关于共用体的一个问题

[复制链接]
1484|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
minux|  楼主 | 2011-3-26 22:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在谭浩强老师的一书中关于共用体的使用强调了一点,“共用体变量中起作用的成员是最后一次存放的成员,在存入一个新成员后,原有成员就失去作用”
但是我看到有些程序这么用
union data
{
  unsigned int u16;
  unsigned char u8[2];
}data1;
main()
{
   data1.u16=0x1234;
  TH0=data1.u8[1];
  TL0=data1.u8[0];
}
那如果按照谭老师书中的,这种用法就不对了。
但按照共用体的概念,和实践使用中发现,这种用法也是对的,那这不是跟谭老师的书中说的不是矛盾吗?

相关帖子

沙发
hgjinwei| | 2011-3-27 19:46 | 只看该作者
有哪里不对?

使用特权

评论回复
板凳
nazhanghuamian| | 2011-3-29 13:01 | 只看该作者
两个成员共用两个字节的存储,上面例子中是对的。谭老师的意思是最后一次赋值有效。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

8

帖子

0

粉丝