Los documentos de MSDN para "volátil" en Visual C++ indican que las escrituras tienen "semántica de lanzamiento" y que las lecturas tienen "semántica de adquisición", además de garantizar que las lecturas siempre se leen de memoria y que las escrituras siempre escriben en consecuencia.Visual C++ Volátil
La especificación C para "volátil" incluye la segunda parte (no realice optimizaciones locas), pero no la primera parte (una valla de memoria).
¿Hay alguna forma en Visual C++ para obtener el comportamiento volátil "C" solamente, sin la valla de memoria?
Quiero forzar una variable para que siempre esté en la pila, en un lugar fijo, pero no quiero tomar la sobrecarga de una valla de memoria en cada asignación a la misma.
¿Hay alguna manera fácil de hacerlo con la fuente de Visual C++?
La primera parte no es el comportamiento estándar de C++, creo. Aunque no estoy seguro. – Nawaz
"Quiero forzar una variable para que siempre esté en la pila, en un lugar fijo" y ¿cómo podría ayudar 'volátil 'con eso? FWIW, las variables son * siempre * en un punto fijo. @Nawaz: no, la primera parte no es estándar. –
@Fernades Las variables locales NO siempre están en un lugar fijo. Las variables locales se pueden eliminar, o su dirección en la pila puede estar en diferentes lugares dependiendo de dónde esté la PC. El optimizador puede hacer muchas cosas locas. Quiero suprimir esas optimizaciones. La forma de hacerlo es usar "volátil". Sin embargo, no quiero que la valla de memoria no ordenada por el estándar que ofrece Visual C++. –