|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
d
| d
| d
| d
| d
| c
| Не используется
| b
| b
| b
| a
| a
|
Если бы последнее поле было задано так: unsigned d:6, то оно размещалось бы не в первом слове, а в разрядах 0 - 5 второго слова.
Нельзя получить адрес переменной битового поля. Переменные битового поля не могут помещаться в массив. Переходя с компьютера на компьютер нельзя быть уверенным в порядке изменения битов (слева на право или справа налево). Любая программа использует битовые поля и зависит от компьютера. Можно смешивать различные структурные переменные в битовых полях.
Пример:
struct emp {
struct addr address;
float pay;
unsigned lay _ off: 1;
unsigned hourly: 1;
unsigned deductions: 3;
};
Определяет запись служащего, использующего только один байт для хранения информации: статуса служащего; полученной зарплаты и размера удержания. Без использования битовых полей данная информация заняла бы три байта. Обращение к любому полю осуществляется так же, как к элементу записи.