-zp1

UNALIGNED 属性がレベル 1 構造体レベルで指定されている場合のように、すべての構造体がマップされるようにします。

このオプションは、DEC VAX PL/I のバージョンとの互換性のために用意されています。

-zp1 を使用したコンパイルは、すべての構造体を効果的にパックするため、データ整列に使用されるパッド バイトはすべて除外されます。これは、メインフレームが送信元のファイルにデータ項目がパックされている、または整列されていないレコードを含む場合に便利です。

-zp1 を設定する場合、ずれたデータがハードウェア例外を引き起こす可能性のある RISC アーキテクチャでは特に、コンパイラは予防策を講じる必要があります。

-zp1 コンパイラ オプションは次のように影響します。

-zp1 を使用すると、ソース コードを変更せずに引数を渡す際の一貫性を維持するために、引数が構造体のメンバーであり、引数およびパラメーターの記述子が UNALIGNED 属性と ALIGNED 属性間で明示的に異ならない場合、コンパイラは呼び出しポイントでのダミー引数の作成を無効にします。

注: -zp1 を使用すると、パフォーマンスに全体的影響が及ぶ可能性があります。SPARC や AIX/Power などの RISC アーキテクチャでは、コンパイラはメモリ内の非整列データ項目にアクセスするために、バイト アドレス可能な命令のシーケンスを生成する必要があります。Intel では、コード生成のための変更は必要ありませんが、ずれたデータ項目にハードウェアがアクセスするには追加のクロック サイクルが必要です。