È una domanda semplice. Codice primaC++ sizeof with bool
struct A {
int x;
};
struct B {
bool y;
};
struct C {
int x;
bool y;
};
In funzione principale, mi chiamano
cout << " bool : " << sizeof(bool) <<
"\n int : " << sizeof(int) <<
"\n class A : " << sizeof(A) <<
"\n class B : " << sizeof(B) <<
"\n class C : " << sizeof(C) << "\n";
e il risultato è
bool : 1
int : 4
class A : 4
class B : 1
class C : 8
Perché le dimensioni di classe C 8 invece di 5? Nota che questo è stato compilato con gcc in MINGW 4.7/Windows 7/32 bit.
che si chiama imbottitura. – Marlon
@Marlon quindi, qual è lo scopo principale del padding? – Sungmin
@Sungmin: pensa agli array. –