1

重複の可能性:
Cのdoubleが8バイト整列されるのはなぜですか?

structure s{
    char a;
    double b;
    int c;
}d;

dのサイズは24です。doubleになると8バイト境界に整列されます。4バイト境界ではなく8バイト境界に整列される理由を誰かが説明できます。すべての要素がそこのサイズに整列されていることを読んだことがありますか?なぜそうなのか

4

1 に答える 1

1

配置は実装によって定義されます。

オブジェクトタイプに配置要件がある場合、それはオブジェクトタイプのサイズ以下の値です。タイプの配置は、多くの場合、タイプのサイズと同じです。

IEEE-754が続くdouble場合、通常IEEE-754 binary64は8バイトのサイズのタイプに対応します。

于 2012-10-15T13:20:11.523 に答える