这是一个简单的问题。先上代码。
struct A {
int x;
};
struct B {
bool y;
};
struct C {
int x;
bool y;
};
在主函数中,我调用
cout << " bool : " << sizeof(bool) <<
"\n int : " << sizeof(int) <<
"\n class A : " << sizeof(A) <<
"\n class B : " << sizeof(B) <<
"\n class C : " << sizeof(C) << "\n";
结果是
bool : 1
int : 4
class A : 4
class B : 1
class C : 8
为什么 C 类的大小是 8 而不是 5?请注意,这是在 MINGW 4.7 / Windows 7 / 32 位机器中使用 gcc 编译的。