Битовые поля - это особый тип структуры, определяющий, какую длину имеет каждый член.
Поле - это последовательность соседних двоичных разрядов (бит) внутри одного целого значения. Используются в случаях:
1) Если ограничено место для хранения информации, можно сохранить несколько логических (истинно, ложь) переменных в одном байте.
2) Некоторые интерфейсы устройств передают информацию, закодировав биты в один байт.
3) Некоторым процедурам кодирования необходимо получить доступ к отдельным битам в байте.
Формат:
struct имя структуры {
тип имя 1: длина;
тип имя 2: длина;
тип имя N: длина;
}
Битовые поля должны объявляться, как int, unsigned, signed и могут занимать от 1 до 16 бит. Битовые поля должны объявлять, как unsigned, если имеют длину 1,т.к. 1 бит не может иметь знака.
Пример:
struct prim { int a: 2; unsigned b:3; int 5; int c:1;unsigned d:5; } i, j;
Эта структура обеспечивает размещение (см. рисунок)