/Zp (構造体メンバーの配置)/Zp (Struct Member Alignment)

メモリに構造体のメンバーをパックする方法を制御し、モジュール内のすべての構造の同じパッキングを指定します。Controls how the members of a structure are packed into memory and specifies the same packing for all structures in a module.




/Zp_n_オプションは各構造体メンバーを格納する場所をコンパイラに指示します。The /Zpn option tells the compiler where to store each structure member. コンパイラはメンバーの種類のサイズのどちらか小さい方である境界を 1 つ目の後にメンバーを格納またはn-バイト境界。The compiler stores members after the first one on a boundary that's the smaller of either the size of the member type, or an n-byte boundary.

パッキングの使用可能な値は、次の表で説明します。The available packing values are described in the following table:

/Zp 引数/Zp argument 効果Effect
11 構造体は、1 バイト境界でパックします。Packs structures on 1-byte boundaries. 同じ /Zpします。Same as /Zp.
22 構造体を 2 バイト境界でパックします。Packs structures on 2-byte boundaries.
44 構造体は、4 バイト境界でパックします。Packs structures on 4-byte boundaries.
88 8 バイト境界 (x86、ARM、および ARM64 の既定値) の構造体にパックします。Packs structures on 8-byte boundaries (default for x86, ARM, and ARM64).
1616 16 バイト境界 (x64 用の既定値) の構造体にパックします。Packs structures on 16-byte boundaries (default for x64).

特定のアラインメント要件がない限り、このオプションを使用しないでください。Don't use this option unless you have specific alignment requirements.


Windows SDK の C++ ヘッダーが設定され、想定 、/zp8 です梱包を内部的にします。C++ headers in the Windows SDK set and assume /Zp8 packing internally. メモリの破損が生じる場合、 /Zp Windows SDK のヘッダー内で設定を変更します。Memory corruption may occur if the /Zp setting is changed inside the Windows SDK headers. ヘッダーは、いずれかが影響を受けません /Zpオプションをコマンドラインで設定します。The headers aren't affected by any /Zp option you set on the command line.

使用することもパック制御構造のパッキングにします。You can also use pack to control structure packing. アラインメントの詳細については、次のトピックを参照してください。For more information about alignment, see:

Visual Studio 開発環境において、このコンパイラ オプションを設定する方法To set this compiler option in the Visual Studio development environment

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。Open the project's Property Pages dialog box. 詳細については、次を参照してください。 Visual Studio での設定の C++ コンパイラとビルド プロパティします。For details, see Set C++ compiler and build properties in Visual Studio.

  2. 選択、構成プロパティ > C/C++ > コード生成プロパティ ページ。Select the Configuration Properties > C/C++ > Code Generation property page.

  3. 変更、構造体メンバーのアラインメントプロパティ。Modify the Struct Member Alignment property.

このコンパイラ オプションをコードから設定するにはTo set this compiler option programmatically

関連項目See also

MSVC コンパイラ オプション \MSVC Compiler Options \ MSVC コンパイラ コマンド ラインの構文MSVC Compiler Command-Line Syntax