What is the significance of the ‘volatile’ keyword in C?
a) It ensures a variable’s value is read from main memory, not from a CPU cache
b) It prevents a variable from being modified
c) It makes a variable thread-safe
d) It converts a variable to a constant
Answer:
a) It ensures a variable’s value is read from main memory, not from a CPU cache
Explanation:
The volatile
keyword in C is used to indicate that a variable’s value can be changed at any time by something outside the control of the code section in which it appears, such as hardware or a different thread. When a variable is declared as volatile
, the compiler does not optimize it, ensuring that its value is always read from main memory rather than being cached by the CPU. This is important in situations like memory-mapped peripheral registers, where the value might change independently of the program.
Understanding the volatile
keyword is crucial for writing low-level, hardware-interacting, or multi-threaded C programs that require precise control over memory access.