/volatile (Interpretation des volatile-Schlüsselworts)
Gibt an, wie das veränderliche Schlüsselwort interpretiert werden soll.
Syntax
/volatile:{iso|ms}
Argumente
/volatile:iso
Wählt strenge volatile
-Semantik aus, wie vom ISO-Standard für die C++-Sprache definiert. Semantiken zum Abrufen bzw. Freigeben sind bei flüchtigen Zugriffen nicht garantiert. Wenn der Compiler AUF ARM (mit Ausnahme von ARM64EC) abzielt, ist dies die Standardinterpretation von volatile
.
/volatile:ms
Wählt erweiterte Microsoft-volatile
-Semantik aus, mit der über den ISO-Standard für die C++-Sprache hinausgehe Speicheranordnungsgarantien hinzufügt werden. Semantiken zum Abrufen bzw. Freigeben sind bei flüchtigen Zugriffen garantiert. Allerdings zwingt diese Option den Compiler auch zum Generieren von Hardwarearbeitsspeicherbarrieren, die möglicherweise beträchtlichen Mehraufwand für ARM und andere schwache Speicheranordnungsarchitekturen bedeuten. Wenn der Compiler auf ARM64EC oder eine nicht ARM-Plattform ausgerichtet ist, ist dies die Standardinterpretation von volatile
.
Hinweise
Es wird dringend empfohlen, "/volatile:iso" zusammen mit expliziten Synchronisierungsgrundtypen und systeminternen Compilern zu verwenden, wenn Sie sich mit arbeitsspeicherübergreifenden Threads befassen. Weitere Informationen finden Sie unter "Veränderlich".
Wenn Sie vorhandenen Code portieren oder diese Option in der Mitte eines Projekts ändern, kann es hilfreich sein, die Warnung C4746 zu aktivieren, um Codespeicherorte zu identifizieren, die von dem Unterschied in der Semantik betroffen sind.
Es gibt keine #pragma
-Entsprechung, zum Steuern dieser Option.
So legen Sie die /volatile-Compileroption in Visual Studio fest
Öffnen Sie das Dialogfeld Eigenschaftenseiten für das Projekt. Weitere Informationen erhalten Sie unter Set C++ compiler and build properties in Visual Studio (Festlegen der Compiler- und Buildeigenschaften (C++) in Visual Studio).
Klicken Sie auf der Eigenschaftenseite auf Konfigurationseigenschaften>C/C++>Befehlszeile.
Fügen Sie im Feld "Zusätzliche Optionen" /volatile:iso oder "/volatile:ms" hinzu, und wählen Sie dann "OK" oder "Übernehmen" aus, um Ihre Änderungen zu speichern.
Siehe auch
volatile
MSVC-Compileroptionen
Syntax für die MSVC-Compilerbefehlszeile