Insures that, when accessing a variable with multiple threads, any cached copies of that variable in a separately-executing thread are updated with the original instance.
The quality of a value that changes unexpectedly. The compiler cannot trust that the value of a volatile variable remains constant over time, and therefore cannot perform certain optimizations. Declared explicitly by the programmer, or determined by the compiler.
a seldom-used keyword in C which has implementation-defined semantics but is usually taken to mean that a variable should not be placed in a register as it may be subject to side effects from hardware or signal handlers.