The volatile
storage class is specified for those
variables that can be modified in ways unknown to the compiler.
Thus, if an object is declared volatile, every reference to the
object in the source code results in a reference to memory in the
object code.