/volatile (volatile 關鍵字轉譯)
指定解譯 volatile 關鍵字的方式。
/volatile:{iso|ms}
Arguments
/volatile:iso
選取 ISO 標準 C++ 語言所定義的嚴格 volatile 語意。 暫時性存取時不保證 Acquire/release 語意。 如果編譯器以 ARM 為目標,這是 volatile 的預設解譯。/volatile:ms
選取 Microsoft 擴充的 volatile 語意,這可超越 ISO 標準 C++ 語言來提高記憶體順序保證。 暫時性存取時保證 Acquire/release 語意。 不過,這個選項也會強制編譯器產生硬體記憶體屏障,可能會在 ARM 和其他弱式記憶體順序架構上增加重大額外負荷。 如果編譯器以除了 ARM 以外的任何其他平台為目標,這是 volatile 的預設解譯。
備註
當您處理跨執行緒共用的記憶體時,強烈建議您搭配明確的同步處理原始物件和編譯器內建來使用 /volatile:iso。 如需詳細資訊,請參閱volatile (C++)。
如果您在專案中移植現有的程式碼或變更這個選項,啟用警告 C4746 識別受語意差異影響的程式碼位置,可能會很有用。
沒有控制這個選項的 #pragma 對應項。
若要在 Visual Studio 中設定 /volatile 編譯器選項
開啟專案的 [屬性頁] 對話方塊。 如需詳細資訊,請參閱如何:開啟專案屬性頁。
選取 [C/C++] 資料夾。
選取 [命令列] 屬性頁。
在 [其他選項。] 方塊中,加入 /volatile:iso 或 /volatile:ms。