共用方式為


/Zp (結構成員對齊)

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

語法

/Zp[116|||8|24]

備註

選項 /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++>Code 產生] 屬性頁。

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

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

另請參閱

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