结构体(四)

结构体的对齐规则

  自动对齐规则

               

 

    1、确定分配单位(一行分配多少个字节)

      结构体中最大基本类型长度决定

    2、确定成员的偏移量

      成员的偏移量 = 成员自身类型的整数倍

    3、收尾

      结构体的总大小 = 分配单位的整数倍

  结构体嵌套结构体自动对齐规则

    1、确定确定分配单位(一行分配多少个字节)

      所有结构体中最大的基本类型长度决定

    2、确定成员的偏移量

      普通成员偏移量 = 成员自身类型的整数倍

      被嵌套的结构体整体偏移量 = 该结构体中最大的基本类型的整数倍

    3、收尾

      结构体成员大小 = 该结构体中最大的基本类型的整数倍

      结构体的总大小 = 分配单位的整数倍

                                       

 

 强制对齐

  #pragma pack(value) 时指定对齐值value。注意value的值为1、2、4、8、16

  1、确定分配单位(一行分配多少个字节)

    分配单位 = min(结构体中最大的基本类型, value)

  2、确定成员的偏移量

    成员的偏移量 = 成员自身类型的整数倍

  3、收尾

      结构体的总大小 = 分配单位的整数倍

                             

 

posted @ 2023-03-16 10:44  牙齿凤  阅读(47)  评论(0)    收藏  举报