结构数据存放时默认按4对齐,考虑以下程序,输出结果为:sizeof(A)=12
typedef struct _A
{
int x;
char z[7];
}A;

void main()
{
int len = sizeof(A);
printf("sizeof(A)=%d\n", len); // len = 12
}
使用 #pragma pack,设置数据按1对齐,此时输出结果为:sizeof(A)=11
#pragma pack(push)
#pragma pack(1)
typedef struct _A
{
int x;
char z[7];
}A;
#pragma pack(pop)

void main()
{
int len = sizeof(A);
printf("sizeof(A)=%d\n", len); // len = 11
}











使用 #pragma pack,设置数据按1对齐,此时输出结果为:sizeof(A)=11













