【基础】数据对齐
数据对齐是一个非常常见的编程问题,有一个讲的很清楚的博客:C语言字节对齐、结构体对齐最详细的解释
简单记一下笔记:
通常32位系统默认4字节对齐,64位系统8字节对齐。至于为什么要对齐,则是因为存取效率。
1.数据类型自身的对齐值: 对于char型数据,其自身对齐值为1,对于short型为2,对于int,float,double类型,其自身对齐值为4,单位字节。
2.结构体或者类的自身对齐值:其成员中自身对齐值最大的那个值。
3.指定对齐值:#pragma pack (value)时的指定对齐值value。
4.数据成员、结构体和类的有效对齐值:自身对齐值和指定对齐值中小的那个值。这里的有效对齐值主要是在出现指定对齐时才会出现,不指定的话就是成员中对齐值最大的值。
本文深入探讨了数据对齐的基础概念,解析了不同系统架构下(如32位和64位)的数据对齐策略,包括数据类型、结构体及类的自身对齐值,以及如何通过指定对齐值来优化内存布局,提高数据访问效率。

442

被折叠的 条评论
为什么被折叠?



