/volatile (Interpretace klíčového slova volatile)
Určuje, jak se má klíčové slovo volatile interpretovat.
Syntaxe
/volatile:{iso|ms}
Argumenty
/volatile:iso
Vybere striktní volatile
sémantiku definovanou jazykem C++ standardu ISO. U nestálých přístupů není zaručena sémantika získání/uvolnění. Pokud kompilátor cílí na ARM (s výjimkou ARM64EC), jedná se o výchozí interpretaci volatile
.
/volatile:ms
Vybere rozšířenou volatile
sémantiku Microsoftu, která přidává záruky řazení paměti nad rámec standardního jazyka C++ standardu ISO. U nestálých přístupů se zaručuje sémantika získání/vydání. Tato možnost ale také vynutí kompilátor generovat bariéry hardwarové paměti, což může znamenat značné režijní náklady na architekturu ARM a další slabé architektury řazení paměti. Pokud kompilátor cílí na ARM64EC nebo jakoukoli platformu, která není platformou ARM, jedná se o výchozí interpretaci volatile
.
Poznámky
Důrazně doporučujeme použít /volatile:iso spolu s explicitními primitivy synchronizace a vnitřními prvky kompilátoru při práci s pamětí, která se sdílí napříč vlákny. Další informace najdete v tématu nestálé.
Pokud portujete existující kód nebo změníte tuto možnost uprostřed projektu, může být užitečné povolit upozornění C4746 k identifikaci umístění kódu ovlivněných rozdílem v sémantice.
Neexistuje žádný #pragma
ekvivalent k řízení této možnosti.
Nastavení možnosti kompilátoru /volatile v sadě Visual Studio
Otevřete dialogové okno Stránky vlastností projektu. Další informace naleznete v tématu Nastavení kompilátoru jazyka C++ a vlastností sestavení v sadě Visual Studio.
Vyberte stránku vlastností příkazového řádku C/C++>Vlastnosti>konfigurace.
Do pole Další možnosti přidejte /volatile:iso nebo /volatile:ms a pak zvolte OK nebo Použít pro uložení změn.
Viz také
volatile
Parametry kompilátoru MSVC
Syntaxe příkazového řádku kompilátoru MSVC