FreeBASIC マニュアルのトップに戻る

FreeBASIC DevStructLayout

目次→FreeBASIC のハッキング→FreeBASIC でのハッキングのための情報Structure packing/field alignment←オリジナル・サイト

構造 パッキング/項目 調整



FreeBASICの TypeUnion の既定レイアウトは、GCC のレイアウトと互換性があります。SysV(Linux/BSD)とマイクロソフト(Windows)ABIs に準拠しているからです。
これは、GCC および他のコンパイラと、バイナリの互換性があることを意味します。

デフォルトで、項目は、その本来の境界で整列します。以下のように、:

コンパイラーは、項目の自然的境界に相当するオフセットに項目を移動させるために、項目の前に詰め物バイトを挿入して、項目を整列させます。あるいは、Field で与えられた値が項目の自然な整列より小さい場合には、Field = N で与えられた値の倍数にするために、項目の前に詰め物バイトを挿入して、項目を整列させます。
x86 アーキテクチャーでは、このような適切な配置は必要ありませんが、項目にアクセスする場合に、よりよいパフォーマンスが期待できます。
他のアーキテクチャーは、実際に適切な配置を要求するかもしれません。

構造全体のサイズは、項目配置に加えて、構造の終端に詰め物バイトを加えることにより、その項目の最大の自然な整列の倍数まで、切り上げられます。
これは、そのような構造の配列の中で、個々のものが、項目によって要求されるように、適切に位置合わせされることを保証します。

FreeBASIC の開発者用情報 に戻る

目次に戻る
ページ歴史:2016-02-10 15:49:07
日本語翻訳:WATANABE Makoto、原文著作者:DkLwikki

ホームページのトップに戻る

表示-非営利-継承