[ZLG-ARM] sizeof的问题

[复制链接]
1814|1
 楼主| 兰天白云 发表于 2007-8-28 09:37 | 显示全部楼层 |阅读模式
sizeof的问题<br /><br />uint32&nbsp;&nbsp;&nbsp;x1,x2,x3;<br />struct&nbsp;<br />{uint16&nbsp;&nbsp;x;<br />&nbsp;uint32&nbsp;y;<br />}sy;<br /><br />int&nbsp;main&nbsp;(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;x1=sizeof(sy);<br />}<br /><br />结果&nbsp;x1=8<br /><br />实际x1=6呀,难道sizeof不能计算结构体长度????
pppking 发表于 2007-8-28 11:42 | 显示全部楼层

字节对齐

struct&nbsp;<br />{<br />uint16&nbsp;&nbsp;x;&nbsp;//占用两个字节,必须从Address&nbsp;&&nbsp;0xFFFE地址开始<br />uint32&nbsp;y;&nbsp;&nbsp;//占用4个字节,必须从Address&nbsp;&&nbsp;0xFFFC地址开始,所以必须在&nbsp;uint16&nbsp;&nbsp;x;后面空缺两个<br />}sy;<br /><br /><br />有些CPU是不需要字节对齐的(但是非常少见),你可以在编译器中设置。<br />一般情况下,我们都要满足字节对齐。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

115

主题

2961

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部