Битовые поля структура присваивания неожиданное поведение
Я не знаю почему, но назначение битовых полей не работает должным образом. Возможно, это просто глупость, но я не смог найти проблему.
Любая помощь приветствуется.
<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>
возвращаемый результат:
<code>94 01 </code>
ожидаемый результат:
<code>26 01 </code>