Todo compilador C oferece a opção de "empacotar" estruturas C (por exemplo __attribute__ ((__packed__))
, ou #pragma pack()
). Agora, todos sabemos que a embalagem é necessária, se quisermos enviar ou armazenar dados de maneira confiável. Isso também deve ter sido um requisito desde os primeiros dias da linguagem C.
Então, eu me pergunto por que estruturas compactadas não fazem parte da especificação da linguagem C? Eles não estão nem no C99 nem no C11, embora a necessidade de tê-los seja conhecida há décadas? O que estou perdendo? Por que é específico do compilador?