Cada compilador de C ofrece la opción de "empaquetar" estructuras de C (por ejemplo __attribute__ ((__packed__))
, o #pragma pack()
). Ahora, todos sabemos que se requiere empacar, si queremos enviar o almacenar datos de manera confiable. Esto también debe haber sido un requisito desde los primeros días del lenguaje C.
Entonces, ¿por qué las estructuras empaquetadas no son parte de la especificación del lenguaje C? ¿Ni siquiera están en C99 o C11 a pesar de que la necesidad de tenerlos se conoce desde hace décadas? ¿Qué me estoy perdiendo? ¿Por qué es específico del compilador?