私は言われました:
[ABI]は、構造体の正確なレイアウト、すべてのメンバーのバイトオフセット、ビットフィールドに使用されるビット、パディングの場所と量などを保証します。
しかし、私は常に、パディングと配置が指定されておらず、信頼性が低いと信じていました。
Itanium ABI (GCCが使用)は実際にこれらのことを指定していますか(私が知る限り、範囲を指定しているようには見えません)?
もしそうなら、そのようなオプションはどのよう__attribute__ ((packed))
にそれに適合しますか?彼らは最終的に物事の配置を変えることによってABIを破りますか?
または、引用が示すように、パッキングはツールチェーン間で指定されていないだけですが、実際には特定のABIの使用内で信頼性があり予測可能ですか?そして、繰り返しますが、そのようなものはどのよう__attribute__ ((packed))
にそれに適合しますか?