#include <stdio.h> #pragma pack(2) struct Test1 { int a; char b; short c; int *d; }A; #pragma pack() #pragma pack(4) struct Test2 { int *d; char b; int a; short c; }B; #pragma pack() int main() { printf("%d,%d\n",sizeof(A),sizeof(B)); return 0; }
#include <stdio.h> #pragma pack(2) struct Test1 { int a; char b; short c; int *d; }A; #pragma pack() #pragma pack(4) struct Test2 { int *d; char b; int a; short c; }B; #pragma pack() int main() { printf("%d,%d\n",sizeof(A),sizeof(B)); return 0; }
12,16
13,13
16,16
其他几项都不对