Битовые поля, почему конкретная реализация?

Похоже, что битовые поля C / C ++ находят широкое применение в драйверах аппаратного обеспечения и двоичных сетевых передачах. Однако они, кажется, не используются широко и обычно не поощряются, потому что фактическая двоичная компоновка зависит от реализации, как видно из этой цитаты из стандарта C99 6.7.2.1/10 - «Спецификаторы структуры и объединения»;

Реализация может выделить любой адресуемый блок памяти, достаточно большой для хранения битового поля. Если остается достаточно места, битовое поле, которое следует сразу за другим битовым полем в структуре, должно быть упаковано в смежные биты той же единицы. Если остается недостаточно места, определяется ли битовое поле, которое не умещается, в следующем блоке или перекрывает смежные блоки, определяется реализацией. Порядок распределения битовых полей в блоке (от старшего к младшему или от младшего к старшему) определяется реализацией. Выравнивание адресуемой единицы хранения не определено.

Мой вопрос довольно прост; Почему комитет решил оставить битовые поля для чего-то конкретного для реализации и, таким образом, сделать его конструкцией компилятора, которая в основном может использоваться для сокращения использования памяти, где во многих случаях она могла бы использоваться для обеспечения хороших двоичных разметок, и бесплатно разработчики из битого кода?

Ответы на вопрос(1)

Ваш ответ на вопрос