/volatile (interpretación de la palabra clave volatile)

Especifica cómo se va a interpretar la palabra clave volatile.

Sintaxis

/volatile:{iso|ms}

Argumentos

/volatile:iso
Selecciona semántica volatile estricta según lo definido por el lenguaje C++ del estándar ISO. No se garantiza la semántica de adquisición o liberación en los accesos volátiles. Si el compilador tiene como destino ARM (excepto ARM64EC), esta es la interpretación predeterminada de volatile.

/volatile:ms
Selecciona la semántica volatile extendida de Microsoft, que agrega garantías de ordenación de memoria más allá del lenguaje C++ del estándar ISO. Se garantiza la semántica de adquisición o liberación en los accesos volátiles. Sin embargo, esta opción también obliga al compilador a generar barreras de memoria de hardware, lo que podría agregar una sobrecarga significativa en ARM y otras arquitecturas de ordenación de memoria débiles. Si el compilador tiene como destino ARM64EC o cualquier plataforma que no sea ARM, esta es la interpretación predeterminada de volatile.

Comentarios

Se recomienda encarecidamente usar /volatile:iso junto con primitivos de sincronización explícitos e intrínsecos del compilador cuando se trabaja con la memoria que se comparte entre subprocesos. Para obtener más información, consulte volatile.

Si porta código existente o cambia esta opción en medio de un proyecto, puede resultar útil habilitar la advertencia C4746 para identificar las ubicaciones de código afectadas por la diferencia en la semántica.

No hay equivalente #pragma para controlar esta opción.

Para establecer la opción del compilador /volatile en Visual Studio

  1. Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para más información, vea Establecimiento del compilador de C++ y de propiedades de compilación en Visual Studio.

  2. Seleccione la página de propiedades Propiedades de configuración>C/C++>Línea de comandos.

  3. En el cuadro Opciones adicionales, agregue /volatile:iso o /volatile:ms y, después, elija Aceptar o Aplicar para guardar los cambios.

Consulte también

volatile
Opciones del compilador de MSVC
Sintaxis de la línea de comandos del compilador MSVC