#include
#pragma pack(8)
struct TestStruct4
{
char a;
long b;
};
struct TestStruct5
{
char c;
struct TestStruct4 d;
long long e;
};
#pragma pack()
void main()
{
struct TestStruct4 f;
struct TestStruct5 j;
printf("%d\n", sizeof(f));
printf("%d\n", sizeof(j));
}
看了一本书上这个程序的运算结果是8、24,我自己感觉也是8、24,在ubuntu下运行了一下,结果是8、20,难道是编译器的问题??求大侠解释一下