すべてのCコンパイラは、C構造体(__attribute__ ((__packed__))
または#pragma pack()
)を「パック」するオプションを提供します。信頼できる方法でデータを送信または保存する場合は、パッキングが必要であることは誰もが知っています。これは、C言語の最初の日からの要件でもあったに違いありません。
では、なぜパック構造体がC言語仕様の一部ではないのでしょうか。それらの必要性が数十年前から知られているにもかかわらず、それらはC99またはC11にさえありませんか?何が欠けていますか?なぜコンパイラ固有なのですか?