Estaba buscando la palabra clave volatile
y para qué sirve, y la respuesta que obtuve fue más o menos:¿Qué tipo de optimizaciones previene 'volátil' en C++?
Se utiliza para evitar que el compilador de optimización de distancia código.
Hubo algunos ejemplos, como cuando el hardware de votación asignados en memoria: sin volatile
el bucle de sondeo se retira como el compilador puede reconocer que el valor de condición no se cambia nunca. Pero como solo había un ejemplo o tal vez dos, me puse a pensar: ¿hay otras situaciones en las que necesitemos usar volatile
en términos de evitar una optimización no deseada? ¿Las variables de condición son el único lugar donde se necesita volatile
?
Imagino que la optimización es específica del compilador y, por lo tanto, no está especificada en la especificación C++. ¿Eso significa que tenemos que ir por instinto, diciendo Hm, sospecho que mi compilador eliminará esto si no declaro esa variable como volatile
o hay alguna regla clara para seguir?
¿Es "no usar' volátil' "una regla aceptable? Porque es bastante bueno. No es que 'volátil 'nunca sea útil. Lo es, es solo que, en general, si no está seguro si lo necesita, probablemente no lo haga. –
@Dennis: +1, y comentado como tal en mi respuesta. –
@DennisZickefoose "_Is" no utiliza 'volátil'" una regla aceptable? _ "Diría: no use' volátil' a menos que algún estándar oficial, texto de referencia o documentación lo indique. – curiousguy