Как определяется / измеряется размер структуры с битовыми полями?

#include <stdio.h>

typedef struct size
{
        unsigned int a:1;
        unsigned int b:31;
        unsigned int c:1;
} mystruct;

int main()
{
        mystruct a;
        printf("%d", sizeof(a));
        return 0;
}
  • С int b: 31 , вывод - 8.
  • С int b: 1 ], вывод будет 4.
  • С int b: 32 вывод будет 12.

Кто-нибудь может объяснить причину этого?

37
задан Jonathan Leffler 15 July 2015 в 03:31
поделиться