RAD Studio |  |

volatile
See Also
Collapse All

Category

Modifiers

Syntax

Copy Code

    volatile <data definition> ;

Description

Use the volatile modifier to indicate that a background routine, an interrupt routine, or an I/O port can change a variable. Declaring an object to be volatile warns the compiler not to make assumptions concerning the value of the object while evaluating expressions in which it occurs because the value could change at any moment. It also prevents the compiler from making the variable a register variable.

Copy Code

    volatile int ticks;
    void timer( ) {
    ticks++;
    }
    void wait (int interval) {
    ticks = 0;
    while (ticks < interval);  // Do nothing
    }

The routines in this example (assuming timer has been properly associated with a hardware clock interrupt) implement a timed wait of ticks specified by the argument interval. A highly optimizing compiler might not load the value of ticks inside the test of the while loop since the loop doesn’t change the value of ticks.

Note: C++ extends volatile
to include classes and member functions. If you’ve declared a volatile object, you can use only its volatile member functions.
See Also

const

Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!