64 位 Windows) 的虛擬位址空間 (程式設計指南
根據預設,64 位 Microsoft Windows 應用程式的使用者模式位址空間為數 TB。 如需精確的值,請參閱 Windows 和 Windows Server 版本的記憶體限制。 不過,應用程式可以指定系統應該為低於 2 GB 的應用程式佈建所有記憶體。 如果下列條件成立,這項功能對 64 位應用程式很有説明:
- 2 GB 位址空間已足夠。
- 程式碼有許多指標截斷警告。
- 指標和整數會自由混合。
- 程式碼使用 32 位資料類型具有多型。
所有指標仍是 64 位指標,但系統會確保每個記憶體配置都低於 2 GB 的限制,因此,如果應用程式截斷指標,就不會遺失任何重大資料。 指標可以截斷為 32 位值,然後藉由符號延伸或零副檔名延伸至 64 位值。
若要指定此記憶體限制,請使用 /LARGEADDRESSAWARE:NO 連結器選項。 請注意,ARM64 二進位檔會忽略 /LARGEADDRESSAWARE:NO 。 不過,請注意,使用此選項時可能會發生問題。 如果您建置使用此選項的 DLL,而且 DLL 是由未使用此選項的應用程式所呼叫,DLL 可能會截斷 64 位指標,其上方 32 位很重要。 這可能會導致應用程式失敗,而不會產生任何警告。