/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 開發環境中設定這個編譯器選項
開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性。
選取 [ 組態屬性 > C/C++ > 程式碼產生 ] 屬性頁。
修改結構成員 Alignment 屬性。
若要以程式方式設定這個編譯器選項
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應