本帖最后由 confidentlin 于 2018-8-23 16:04 编辑
内存对齐的规则: 1、 对于结构的各个成员,第一个成员位于偏移为0的位置,以后每个数据成员的偏移量必须是min(#pragma pack()指定的数,这个数据成员的自身长度) 的倍数。 2、 在数据成员完成各自对齐之后,结构(或联合)本身也要进行对齐,对齐将按照min(#pragma pack指定的数值和结构(或联合)最大数据成员长度)的倍数进行。
#pragma pack(n) 表示设置为n字节对齐。#pragma pack(1)就是按字节对齐,IAR #pragma pack(n)默认好像是8
|