|
Expertise: Advanced
Language: C++
April 26, 1999
The Volatile Storage Qualifier
The const qualifier guarantees that the value of an object cannot be changed directly by the program. However, it may be altered asynchronously--that is, by a way unknown to the compiler. For example, the current bit rate of a modem can be read directly from its port and stored in a const variable. However, it can have different values during the execution of the program, due to the varying line conditions. The compiler can mistakenly assume that the value is immutable and store it in a machine register as an optimization measure, rather than read it from the modem's port. The volatile qualifier instructs the compiler to read the value of the variable from its source (in this case, the modem port) every time it is accessed, instead of storing it in a faster processor register. The generated code may be less efficient in this case, but it is correct.
Danny Kalev
If you have a hot tip and we publish it, we'll pay you. However, due to accounting overhead we no longer pay $10 for a single tip submission. You must accumulate 10 acceptable tips to receive payment. Be sure to include a clear explanation of what the technique does and why it's useful. If it includes code, limit it to 20 lines if possible. Submit your tip here.
|