#pragma pack ()是用来控制字节对齐的,一般头文件中没有的话是默认值,即以结构体中的最大元素所占字节对齐;
若存在多个#pragma pack (n),遵从向上对齐原则,即某个结构体定义上方最近的一个#pragma pack()
以下例子中 结构体a 和c上方无#pragma pack 则按照默认对齐方式,即sizeof(struct a)是 8 ,sizeof(struct c)是3字节
而结构体b上方 有按照一字节定义#pragma pack (1),则sizeof (struct b)是6字节
struct a{
char str;
int inter;
};
struct c{
char str;
char str1;
char str2;
};
#pragma pack(1)
struct b{
char str;
char str1;
int inter;
};