這是一個簡單的問題。先編碼。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:想想數組。 –