Condividi tramite


/volatile (interpretazione della parole chiave volatile)

Specifica la modalità di interpretazione della parola chiave volatile .

Sintassi

/volatile:{iso|ms}

Argomenti

/volatile:iso
Seleziona la semantica strict volatile definita dal linguaggio C++ standard ISO. La semantica di acquisizione/rilascio non è garantita per gli accessi volatili. Se il compilatore ha come destinazione ARM (ad eccezione di ARM64EC), questa è l'interpretazione predefinita di volatile.

/volatile:ms
Seleziona la semantica estesa volatile Microsoft, che aggiunge garanzie di ordinamento della memoria oltre il linguaggio C++ standard ISO. La semantica di acquisizione/rilascio è garantita per gli accessi volatili. Tuttavia, questa opzione forza anche il compilatore a generare barriere di memoria hardware, che potrebbero aggiungere un sovraccarico significativo su ARM e altre architetture deboli di ordinamento della memoria. Se il compilatore è destinato ARM64EC o a qualsiasi piattaforma non ARM, questa è l'interpretazione predefinita di volatile.

Osservazioni:

È consigliabile usare /volatile:iso insieme alle primitive di sincronizzazione esplicite e alle funzioni intrinseche del compilatore quando si utilizza la memoria condivisa tra thread. Per altre informazioni, vedere Volatile.

Se si esegue la conversione di codice esistente o si modifica questa opzione al centro di un progetto, può essere utile abilitare l'avviso C4746 per identificare le posizioni del codice interessate dalla differenza nella semantica.

Non esiste alcun #pragma equivalente per controllare questa opzione.

Per impostare l'opzione del compilatore /volatile in Visual Studio

  1. Aprire la finestra di dialogo Pagine delle proprietà per il progetto. Per altre informazioni, vedere Impostare il compilatore e le proprietà di compilazione.

  2. Selezionare la pagina delle proprietà Proprietà di configurazione>C/C++>Riga di comando.

  3. Nella casella Opzioni aggiuntive aggiungere /volatile:iso o /volatile:ms e quindi scegliere OK o Applica per salvare le modifiche.

Vedi anche

volatile
Opzioni del compilatore MSVC
Sintassi della riga di comando del compilatore MSVC