我试图解决一个考试题,问题是A级和B级的大小是什么?
class A {
char c;
short s;
char c2;
int i;
};
class B {
int i;
short s;
char c, c2;
};
按我说来
sizeof class A:8 (char:1,short:2,char:1,int:4 - No Padding)
B类的大小:8 (int:4,short:2,char:1 + 1 - No Padding)
当我在我的系统中尝试时,我得到的输出与我期望的不同
A类的大小:12
B类的大小:8
当我在课堂上做了一些改变时
class A {
char c,c2;
short s;
//char c2;
int i;
};
class B {
int i;
short s;
char c, c2;
};
然后输出 sizeof(A):8 和 sizeof(B):8
有人可以解释一下输出是如何输出的12& 8? 提前致谢