Tengo curiosidad por saber por qué los campos de bits con el mismo tipo de datos toman menos tamaño que con los tipos de datos mixtos .por qué los campos de bits para los mismos tipos de datos tienen menos tamaño en comparación con los campos de bits para los tipos de datos mixtos
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.
estoy usando VS 2005, la máquina de 64 bits x86.
Una respuesta de nivel de máquina/compilador de bits sería genial.
Sin embargo, tenga en cuenta que los campos de bits realmente no tienen requisitos de alineación. –
No, pero el compilador no tiene obligación de empaquetarlos. – greyfade
Ver ISO14882: 2003, §9.6, párrafo 1. – greyfade