volatile

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Schlüsselwörter alphabetisch - Index


Kategorie

Modifizierer

Syntax

volatile <data definition> ;

Beschreibung

Der Modifizierer volatile teilt dem Compiler mit, dass eine Variable möglicherweise von einer Hintergrundroutine, einer Interruptroutine oder einem I/O-Port verändert wird. Die Deklaration eines Objektes als volatile warnt den Compiler, keine den Wert des Objektes betreffenden Zusicherungen zu machen, so lange die Ausdrücke, in denen es erscheint, evaluiert werden. Denn der Wert könnte sich jeden Augenblick ändern. Es hält den Compiler auch davon ab, aus einer Variablen eine Registervariable zu machen.

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

Die Routinen in diesem Beispiel (unter der Annahme, dass die Funktion timer passend mit einem Interrupt der Hardware-Uhr verbunden ist) implementieren einen Zeitgeber, dessen Wartezeit durch den Parameter interval festgelegt wird. Ein besonders optimierter Compiler könnte den Wert von ticks innerhalb des Tests der Schleife while nicht laden, seit die Schleife den Wert von ticks nicht ändert.

Hinweis:  In C++ ist die Verwendbarkeit von while auf Klassen und Elementfunktionen erweitert. Wenn Sie ein Objekt volatile deklariert haben, können Sie ausschließlich seine volatile Elementfunktionen verwenden.

Siehe auch