自然对齐(数据类型的长度)

1)对于char型数据,自然对齐的长度为1字节,short为2字节,int为4字节,float也是4字节,当然这些数据类型的对齐长度可能和编译器有关

2)结构体或者类的自身对齐值:其成员中自身对齐值最大的那个值

指定对齐

#pragma pack(n)中n值,如果没有指定,则为CPU默认对齐值,32位 默认4字节对齐,64位默认8字节对齐

有效对齐

自然对齐和指定对齐的最小值

结构体对齐步骤

  1. 每个成员变量分别按自己的“有效对齐”作对齐。确定每个成员的有效对齐。逐个添加对应的padding。
  2. 取所有成员变量的“有效对齐”的最大值,作为结构体的“有效对齐”
  3. 结构体成员及结构体自己的起始地址和长度均为其“有效对齐”的整数倍

标签: none

添加新评论