1.2.9. Поля битов

Содержание
Возврат к предыдущей части 1.2.8 Обьединения (union)

Элементом структуры может быть битовое поле, обеспечивающее доступ к отдельным битам памяти. Вне структур битовые поля объявлять нельзя. Нельзя также организовывать массивы битовых полей и нельзя применять к полям операцию определения адреса. В общем случае тип структуры с битовым полем задается в следующем виде:

1
2
     struct { unsigned идентификатор 1 :  длина-поля  1;
              unsigned идентификатор 2 :  длина-поля  2;    }

длинна — поля задается целым выражением или константой. Эта константа определяет число битов, отведенное соответствующему полю. Поле нулевой длинны обозначает выравнивание на границу следующего слова.

Пример:

1
2
3
4
      struct { unsigned a1 :  1;
               unsigned a2 :  2;
               unsigned a3 :  5;
               unsigned a4 :  2;  } prim;

Структуры битовых полей могут содержать и знаковые компоненты. Такие компоненты автоматически размещаются на соответствующих границах слов, при этом некоторые биты слов могут оставаться неиспользованными.
Ссылки на поле битов выполняются точно так же, как и компоненты общих структур. Само же битовое поле рассматривается как целое число, максимальное значение которого определяется длиной поля.

Читать далее. Раздел 1.2.10 Переменные с изменяемой структурой
Содержание

Добавить комментарий