23:52
В восемь раз дороже
Битовые поля -- опасная штука. Применяют их нынче, в основном, для программирования микроконтроллеров. При текущих об'ёмах памяти применение их в обычных приложениях нецелесообразно. При работе следует учесть две вещи:
а) тип int -- знаковый, а значит, поле int i:1; шириной 1 бит содержит в себе два значения -- ноль и... минус единицу. Нужно использовать unsigned int.
б) написать структуру, похожую на битовую, недостаточно. Нужно чтобы реально была указана битность:
эта штука занимает 8 БАЙТ и не содержит в себе битовых полей. Нужно добавить :1 после каждого имени. На этом попался опытный специалист прямо у меня на глазах.
а) тип int -- знаковый, а значит, поле int i:1; шириной 1 бит содержит в себе два значения -- ноль и... минус единицу. Нужно использовать unsigned int.
б) написать структуру, похожую на битовую, недостаточно. Нужно чтобы реально была указана битность:
struct A
{
unsigned int bit0;
unsigned int bit1;
unsigned int bit2;
unsigned int bit3;
unsigned int bit4;
unsigned int bit5;
unsigned int bit6;
unsigned int bit7;
};
эта штука занимает 8 БАЙТ и не содержит в себе битовых полей. Нужно добавить :1 после каждого имени. На этом попался опытный специалист прямо у меня на глазах.