Я изучаю основы языка C. Я пришел к главе структур с битовыми полями. В книге показан пример структуры с двумя различными типами данных: различными bools и различными unsigned ints.
Книга заявляет, что структура имеет размер 16 бит и что без использования прокладки структура будет измерять 10 бит.
Это структура, которую книга использует в примере:
#include <stdio.h>
#include <stdbool.h>
struct test{
bool opaque : 1;
unsigned int fill_color : 3;
unsigned int : 4;
bool show_border : 1;
unsigned int border_color : 3;
unsigned int border_style : 2;
unsigned int : 2;
};
int main(void)
{
struct test Test;
printf("%zu\n", sizeof(Test));
return 0;
}
Почему на моем компиляторе вместо этого точно такая же структура измеряет 16 байтов (а не бит) с заполнением и 16 байтов без заполнения?
я использую
GCC (tdm-1) 4.9.2 compiler;
Code::Blocks as IDE.
Windows 7 64 Bit
Intel CPU 64 bit
Это результат, который я получаю:
Вот пример страницы, на которой показан пример: