Bitfields, ¿por qué implementación específica?

Los campos de bits C / C ++ parecen tener muchas aplicaciones en controladores de hardware y transferencias de red binarias. Sin embargo, no parece que se utilicen ampliamente y, en general, no se recomiendan, ya que el diseño binario real es específico de la implementación, como se ve en esta cita del estándar C99 6.7.2.1/10 - "Especificadores de estructura y unión";

Una implementación puede asignar cualquier unidad de almacenamiento direccionable lo suficientemente grande como para contener un campo de bits. Si queda suficiente espacio, un campo de bits que sigue inmediatamente a otro campo de bits en una estructura se empaquetará en bits adyacentes de la misma unidad. Si no queda espacio suficiente, si un campo de bits que no se ajusta se coloca en la siguiente unidad o se superpone a las unidades adyacentes se define por la implementación. El orden de asignación de los campos de bits dentro de una unidad (orden alto a orden bajo o orden bajo a orden alto) está definido por la implementación. La alineación de la unidad de almacenamiento direccionable no está especificada.

Mi pregunta es bastante simple; ¿Por qué el comité decidió dejar los campos de bits para que fueran algo específico de la implementación y, por lo tanto, convertirlos en una compilación, que se puede usar principalmente para reducir el uso de la memoria, donde en muchos casos se podría haber utilizado para proporcionar diseños binarios agradables y gratis? Los desarrolladores de código de bit-fiddling?

Respuestas a la pregunta(1)

Su respuesta a la pregunta