uses of volatile
volatile means that something else besides your code can modify the object.
The C standard says: an object that has volatile-qualified type may be modified in ways unknown to the implementation or have other unknown side effects.
const volatile means that your code can't modify the object but something else can.
The C standard gives an example:
extern const volatile int real_time_clock;
may be modifiable by hardware, but cannot be assigned to, incremented, or decremented.