Eu estava lendo a documentação do GNU/GCC e parei na descrição do __attribute__ ((packed))
. Diz:
embalado
O atributo compactado especifica que um campo de variável ou estrutura deve ter o menor alinhamento possível – um byte para uma variável e um bit para um campo, a menos que você especifique um valor maior com o atributo alinhado.
Aqui está uma estrutura na qual o campo x é compactado, de modo que segue imediatamente a:
struct foo { char a; int x[2] __attribute__ ((packed)); };
Gostaria de saber como esse atributo funciona exatamente e se esse código:
struct bar
{
char a:1 __attribute__ ((packed));
};
criaria uma estrutura de 1 bit em vez de 1 byte.