【基础】数据对齐
数据对齐是一个非常常见的编程问题,有一个讲的很清楚的博客:C语言字节对齐、结构体对齐最详细的解释
简单记一下笔记:
通常32位系统默认4字节对齐,64位系统8字节对齐。至于为什么要对齐,则是因为存取效率。
1.数据类型自身的对齐值: 对于char型数据,其自身对齐值为1,对于short型为2,对于int,float,double类型,其自身对齐值为4,单位字节。
2.结构体或者类的自身对齐值:其成员中自身对齐值最大的那个值。
3.指定对齐值:#pragma pack (value)时的指定对齐值value。
4.数据成员、结构体和类的有效对齐值:自身对齐值和指定对齐值中小的那个值。这里的有效对齐值主要是在出现指定对齐时才会出现,不指定的话就是成员中对齐值最大的值。