推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

内存对齐的深入理解与结构体布局优化.docx

更新时间:2026-10-10 20:43:15 大小:39K 上传用户:江岚查看TA发布的资源 标签:内存对齐结构体布局填充字节CPU访问效率sizeof 下载积分:2分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

内存对齐的深入理解与结构体布局优化

一、为什么要关心内存对齐

很多C程序员在初学时会对结构体的 sizeof 结果感到困惑:明明只是几个字段加起来,为什么结果会大于字段大小的总和?这背后的原因是内存对齐——编译器为了优化CPU访问效率,在结构体成员之间插入填充字节。

struct Example {
    char c;      // 1 字节
    int i;       // 4 字节
    double d;    // 8 字节
};

// 三个字段大小之和为 13
// 但 sizeof(struct Example) 结果为 24

二、对齐规则的底层原理

现代CPU访问内存时以字(word)为单位读取,不同架构的字大小不同(常见的为4字节或8字节)。如果数据没有对齐,CPU可能需要多次访问内存才能读取完整的数据。

对齐的本质是用空间换时间——多占用一些内存,换取更快的访问速度。

2.1 成员对齐规则

每个成员的起始地址必须对齐到其自身大小的倍数:

· char(1字节):任意地址均可

· short(2字节):必须是偶数地址

· int(4字节):必须是4的倍数地址



部分文件列表

文件名 大小
内存对齐的深入理解与结构体布局优化.docx 39K

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载