打印
[牛人杂谈]

C语言内存字节对齐小结

[复制链接]
575|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
天灵灵地灵灵|  楼主 | 2016-12-18 12:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.结构体内成员按自身按自身长度自对齐。
自身长度,如char=1,short=2,int=4,double=8,。所谓自对齐,指的是该成员的起始位置的内存地址必须是它自身长度的整数倍。如int只能以0,4,8这类的地址开始
2.结构体的总大小为结构体的有效对齐值的整数倍
结构体的有效对齐值的确定:
1)当未明确指定时,以结构体中最长的成员的长度为其有效值
2)当用#pragma pack(n)指定时,以n和结构体中最长的成员的长度中较小者为其值。
3)当用__attribute__ ((__packed__))指定长度时,强制按照此值为结构体的有效对齐值


沙发
天灵灵地灵灵|  楼主 | 2016-12-18 12:17 | 只看该作者
如果用数据结构的话,这些都是要研究的。

使用特权

评论回复
板凳
643757107| | 2016-12-18 12:55 | 只看该作者
结构体里面时常用这个

使用特权

评论回复
地板
mintspring| | 2016-12-18 18:00 | 只看该作者
从来没试用过这个概念编写程序。

使用特权

评论回复
5
gejigeji521| | 2016-12-18 22:14 | 只看该作者
这两个指令很少用啊,是标准的C吗

使用特权

评论回复
6
huangcunxiake| | 2016-12-20 19:55 | 只看该作者
对齐的存储可以节约空间。

使用特权

评论回复
7
天灵灵地灵灵|  楼主 | 2016-12-25 23:11 | 只看该作者
对齐内存,可以让数据查询更快,不容易跑飞。

使用特权

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

本版积分规则

161

主题

3317

帖子

13

粉丝