Freigeben über


/volatile (Interpretation des volatile-Schlüsselworts)

Gibt an, wie das volatile-Schlüsselwort interpretiert werden soll.

/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 ausgerichtet ist, 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 eine Plattform außer ARM ausgerichtet ist, ist dies die Standardinterpretation von volatile.

Hinweise

Es wird dringend empfohlen, dass Sie /volatile:iso zusammen mit expliziten Synchronisierungsprimitiven und systeminternen Funktionen des Compilers verwenden, wenn Sie mit Speicherplatz arbeiten, der über Threads freigegeben wird. Weitere Informationen finden Sie unter volatile (C++).

Wenn Sie vorhandenen Code portieren oder diese Option mitten in einem Projekt ändern, kann es hilfreich sein, die Warnung C4746 zu aktivieren, um Codespeicherorte zu identifizieren, die von dem Unterschied in der Semantik beeinflusst werden.

Es gibt keine #pragma-Entsprechung, zum Steuern dieser Option.

So legen Sie die /volatile-Compileroption in Visual Studio fest

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten für das Projekt. Weitere Informationen finden Sie unter Gewusst wie: Öffnen von Projekteigenschaftenseiten.

  2. Wählen Sie den Ordner C/C++ aus.

  3. Wählen Sie die Eigenschaftenseite Befehlszeile aus.

  4. Fügen Sie im Feld Zusätzliche Optionen/volatile:iso oder /volatile:ms hinzu.

Siehe auch

Referenz

volatile (C++)

Compileroptionen

Festlegen von Compileroptionen