Paso 16: Variables volátiles
Variables volátiles son variables que pueden cambiar durante el tiempo, incluso si el programa que se ejecuta no modificarlas. Al igual que Arduino registros puede cambiar el valor de algunas intervenciones exteriores.
¿Por qué el compilador quiere saber acerca de dichas variables? Eso es porque el compilador intenta siempre optimizar el código que escribimos, para que sea más rápido, y modifica poco a poco, tratando de no cambiar su significado. Si una variable cambia por su propio podría parece que el compilador que no se modifica durante la ejecución de, digamos, un lazo y podía ignorar mientras que podría ser crucial que la variable cambia su valor. Para declarantes variables volátiles previene el compilador para modificar el código concerniente a los.
Para más información sugiero para leer la página de Wikipedia: http://en.wikipedia.org/wiki/Volatile_variable