Я работаю с structs в c на linux. я начал использовать битовые поля и «упаковано» атрибут, и я наткнулся на поведение Wierd:Упакованные битовые поля в c структурах - GCC
struct t1
{
int a:12;
int b:32;
int c:4;
}__attribute__((packed));
struct t2
{
int a:12;
int b;
int c:4;
}__attribute__((packed));
void main()
{
printf("%d\n",sizeof(t1)); //output - 6
printf("%d\n",sizeof(t2)); //output - 7
}
Каким образом обе структуры - которые точно так же - взять diffrent число байтов?
Поскольку 't2 :: b' гарантированно будет отличным местом для хранения данных? Подумайте о гонках данных. –