分享方式:


/Zp (結構成員對齊)

控制結構成員如何封裝到記憶體中,並為模組中的所有結構指定相同的封裝。

語法

/Zp[1|2|4|8|16]

備註

選項 /ZpN 會告訴編譯器儲存每個結構成員的位置。 編譯器會將成員儲存在屬於成員類型 大小較小或 N 位元組界限的界限的第一個界限之後。

下表說明可用的封裝值:

/Zp 引數 影響
1 封裝 1 位元組界限上的結構。 與 /Zp 相同。
2 封裝 2 位元組界限上的結構。
4 在 4 位元組界限上封裝結構。
8 封裝 8 位元組界限上的結構(預設為 x86、ARM 和 ARM64)。
16 封裝 16 位元組界限上的結構(x64 和 ARM64EC 的預設值)。

除非您有特定的對齊需求,否則請勿使用此選項。

警告

Windows SDK 中的 C/C++ 標頭假設使用平臺的預設對齊方式。 當您在命令列上使用 或 使用 #pragma pack 時, /Zp 請勿從預設值變更設定。 否則,您的應用程式可能會在執行時間造成記憶體損毀。

您也可以使用 pack pragma 來控制結構封裝。 如需對齊的詳細資訊,請參閱:

在 Visual Studio 開發環境中設定這個編譯器選項

  1. 開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性

  2. 選取 [ 組態屬性 > C/C++ > 程式碼產生 ] 屬性頁。

  3. 修改結構成員 Alignment 屬性。

若要以程式方式設定這個編譯器選項

另請參閱

MSVC 編譯器選項
MSVC 編譯器命令列語法