IT-словарь › Программирование › Битовое поле

Битовое поле

Программирование Svenska → Обновлено: 2026-11-03

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

Напишите unsigned ready : 1; — и член структуры станет шириной в один бит, а reg.ready = 1 будет выглядеть как обычное присваивание. Для описания аппаратного регистра это соблазнительно. Подвох в том, что стандарт оставляет порядок битов, выравнивание и базовую единицу хранения на усмотрение компилятора, поэтому одна и та же структура может лечь по-разному в разных компиляторах или на архитектурах с разным порядком байтов.

Кроме того, каждая запись — это чтение-модификация-запись, способная затереть биты статуса, которые сбрасываются при чтении. Поэтому CMSIS и большинство заголовков производителей используют маски и сдвиги, а MISRA C сильно ограничивает битовые поля.

← Назад к словарю