/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

  1. 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.

  2. Vyberte stránku vlastností příkazového řádku C/C++>Vlastnosti>konfigurace.

  3. 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