首页 > 试题广场 >

请你说一说操作系统中的结构体对齐,字节对齐

[问答题]

请你说一说操作系统中的结构体对齐,字节对齐

字节对齐:
1.第一个成员在与结构体变量偏移量(offset)为0的地址处。
2.其他成员变量要对齐到对齐数的整数倍的地址处
    (1)对齐数=对齐系数与该成员大小的较小值。
    (2)如果有宏定义 #pragma pack(n); 则它中的n 就是对齐系数。
    (3)VS中默认的对齐系数为8,linux中的默认为4.
3.结构体总大小为最大对齐数(每个成员变量除了第一个都有对齐数)的整数倍。
4.如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,
  结构体的整体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。
发表于 2019-07-06 20:29:55 回复(0)