在声明结构体时使用指定填充的方式,可以避免编译器添加多余的填充。例如:
#pragma pack(push, 1) //指定对齐方式为1字节
struct myStruct {
char a;
int b;
char c;
};
#pragma pack(pop) //恢复默认对齐方式
//在使用结构体时,就可以直接使用myStruct而不用再考虑填充的问题
该方法的原理是通过指定对齐方式使结构体中的成员按照一个字节对齐,避免了编译器添加多余填充的方式。