这是一个片段:
#pragma pack(4)
struct s1
{
char a;
long b;
};
#pragma pack()
#pragma pack(2)
struct s2
{
char c;
struct s1 st1;
};
#pragma pack()
#pragma pack(2)
struct s3
{
char a;
long b;
};
#pragma pack()
#pragma pack(4)
struct s4
{
char c;
struct s3 st3;
};
#pragma pack()
我虽然 sizeof(s4) 应该是 10 或 12。但结果是 8。我使用的是 Visual C++ 6.0。有人能告诉我为什么吗?