Comportamento inesperado da atribuição do struct dos campos do bit
Eu não sei porque, mas a atribuição de campos de bits não está funcionando como esperado. Provavelmente é apenas uma coisa estúpida, mas não consegui localizar o problema.
Qualquer ajuda é mais do que bem vinda.
<code>typedef struct a { unsigned char a1 :1; unsigned char a2 :3; unsigned char a3 :2; unsigned char a4 :2; } __attribute__((packed)) mystruct; int main() { mystruct d; d.a1 = 0; d.a2 = 2; d.a3 = 1; d.a4 = 2; unsigned char *val = (unsigned char*) &d; printf("%02X \n", *val); printf("%02X \n", sizeof(hola)); exit(0); } </code>
saída retornada:
<code>94 01 </code>
saída esperada:
<code>26 01 </code>