| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1754 人关注过本帖
标题:得出答案,给出为什么?
只看楼主 加入收藏
kyln
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-4-21
收藏
得分:0 
传说中的字节对齐呀
在计算机中,为了加快寻址速度,把宽度为4的数据位于能被4带除的地址上,宽度为8的数据都为于能被8整除的地址上……
在结构体中,整个结构体所点的字节数应为其成员中宽度最大的数据的整数倍。结构体每个成员所处地址的偏移量都是该成员大小的整数倍。以上两点如果不满足则会以填充字节来补齐。
LZ所给的b中,最大数据成员为double,8个字节,所以整个结构体的字节数应为8的整数倍,但后面的char只一个字节,所以在char后面全有七个字节的填充位,以补充够16个字节。
同时c也要进行字节对齐,所以是32字节

[[it] 本帖最后由 kyln 于 2008-4-23 19:45 编辑 [/it]]
2008-04-23 19:43
快速回复:得出答案,给出为什么?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017195 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved