Gracias, realmente útil eso que me dices, lo que sigo sin entender es:
struct _GTS_HEADER_bits
{
unsigned int GTSDescriptorCount :3;
unsigned int :4;
unsigned int GTSPermit :1;
} bits;
según entiendo, los tres primeros bits del "unsigned int" se llaman GTSDescriptorCount, los cuatro siguientes no tienen nombre, con lo que no se usan, y el siguiente se llama GTSPermit, ¿es así?
Si el funcionamiento es el que yo creo, ¿que sentido tiene reservar un int para algo que ocupa 8 bits? ¿no sería mejor un char?
Saludos