/volatile (interpretacja słowa kluczowego volatile)
Określa sposób interpretowania słowa kluczowego volatile .
Składnia
/volatile:{iso|ms}
Argumenty
/volatile:iso
Wybiera ściśle semantykę volatile
zdefiniowaną przez standardowy język C++ iso. Semantyka uzyskiwania/wydawania nie jest gwarantowana w przypadku nietrwałych dostępu. Jeśli kompilator jest przeznaczony dla usługi ARM (z wyjątkiem ARM64EC), jest to domyślna interpretacja elementu volatile
.
/volatile:ms
Wybiera semantyka rozszerzona volatile
firmy Microsoft, która dodaje gwarancje porządkowania pamięci wykraczające poza standardowy język C++ w standardzie ISO. Semantyka uzyskiwania/wydawania jest gwarantowana w przypadku nietrwałych dostępu. Jednak ta opcja wymusza również, aby kompilator wygenerował bariery pamięci sprzętowej, co może zwiększyć znaczne obciążenie w usłudze ARM i innych słabych architekturach porządkowania pamięci. Jeśli kompilator jest przeznaczony dla ARM64EC lub dowolnej platformy innej niż ARM, jest to domyślna interpretacja elementu volatile
.
Uwagi
Zdecydowanie zalecamy używanie /volatile:iso wraz z jawnymi elementami pierwotnymi synchronizacji i funkcjami wewnętrznymi kompilatora, gdy masz do czynienia z pamięcią współdzieloną między wątkami. Aby uzyskać więcej informacji, zobacz volatile.
Jeśli przenosisz istniejący kod lub zmieniasz tę opcję w środku projektu, warto włączyć ostrzeżenie C4746 w celu zidentyfikowania lokalizacji kodu, które mają wpływ na różnicę w semantyce.
Ta opcja nie #pragma
jest odpowiednikiem tej opcji.
Aby ustawić /volatile kompilator opcji w programie Visual Studio
Otwórz okno dialogowe Strony właściwości dla projektu. Aby uzyskać więcej informacji, zobacz Set C++ compiler and build properties in Visual Studio (Ustawianie właściwości kompilatora języka C++ i kompilacji w programie Visual Studio).
Wybierz stronę Właściwości>konfiguracji C/C++>Wiersza polecenia.
W polu Dodatkowe opcje dodaj /volatile:iso lub /volatile:ms, a następnie wybierz przycisk OK lub Zastosuj, aby zapisać zmiany.
Zobacz też
volatile
Opcje kompilatora MSVC
Składnia wiersza polecenia kompilatora MSVC