Sono curioso di sapere perché i campi di bit con lo stesso tipo di dati richiedono meno dimensioni rispetto ai tipi di dati misti .perché i campi di bit per gli stessi tipi di dati hanno dimensioni inferiori rispetto ai campi di bit per i tipi di dati mix
struct xyz
{
int x : 1;
int y : 1;
int z : 1;
};
struct abc
{
char x : 1;
int y : 1;
bool z : 1;
};
sizeof (xyz) = 4 sizeof (abc) = 12.
Sto usando VS 2005, computer a 64 bit x86.
Una risposta a livello di macchina/compilatore di bit sarebbe ottima.
Nota che i campi di bit in realtà non hanno i requisiti di allineamento. –
No, ma il compilatore non ha l'obbligo di comprimerli. – greyfade
Vedere ISO14882: 2003, §9.6, paragrafo 1. – greyfade