パディングが必要な場所について、アプリケーションにおける内部データ構造をチェックする必要があります。LP64 データ型モデルでは long
またはポインタフィールドは 64 ビットに拡張されるので、境界を整列するために構造体内のフィールド間にパディングを行うことができます。SPARC プラットフォーム上の 64 ビット環境では、構造体の型はすべて、少なくとも構造体内にある一番大きいサイズに整列されます。構造体を再構成するための簡単な規則は、long
とポインタのフィールドを構造体の始めの位置に移動することです。
struct bar { int i; long j; int k; char *p; }; /* sizeof (struct bar) = 32 */
推奨される使用法
struct bar { char *p; long j; int i; int k; }; /* sizeof (struct bar) = 24 */