打印

在一年坛子看的C语言的学习注意事项

[复制链接]
2227|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
关小波522|  楼主 | 2011-12-14 17:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是一个纯粹的工程问题。教科书上没有讲,如同吃**蛋先打碎哪头一样,学校是不会教的。

有这样一个联合体数据结构:
typedef unsigned long uint32;
typedef unsigned short uint16;
typedef unsigned char uint8;

typedef union foo_u_ {
uint32 member1;
uint16 member2[2];
uint8 member3[4];
} foo_u;

那么,当这个联合体中,member1的值为0x12345678的时候,member2[0]和member3[0]各为多少呢?

相关帖子

沙发
tl5324260| | 2011-12-15 09:24 | 只看该作者
求高人出现  不懂

使用特权

评论回复
板凳
板砖横飞| | 2011-12-15 11:30 | 只看该作者
这可能要看是地址编址是大端模式还是小端模式了

使用特权

评论回复
地板
板砖横飞| | 2011-12-15 11:32 | 只看该作者
member3[0]可能是0x12也可能是0x78,用联合体时要小心。

使用特权

评论回复
5
TI_MCU| | 2011-12-15 12:35 | 只看该作者
楼上正解,大小端不同结果是不同的。
大端是0x12,小端是0x78

使用特权

评论回复
6
sqcumt123| | 2011-12-20 14:30 | 只看该作者
楼主的比喻真贴切,还是需要实践经验的人来解答

使用特权

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

本版积分规则

58

主题

564

帖子

1

粉丝