这是一个简单的问题。先编码。C++ sizeof与布尔
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编译的。
这就是所谓的填充。 – Marlon
@Marlon所以,填充的主要目的是什么? – Sungmin
@Sungmin:想想数组。 –