Sun Studio 12: C User's Guide

6.6.5 volatile Means Exact Semantics

So far, the examples have all used const because it’s conceptually simpler. But what does volatile really mean? To a compiler writer, it has one meaning: take no code generation shortcuts when accessing such an object. In ISO C, it is a programmer’s responsibility to declare every object that has the appropriate special properties with a volatile qualified type.