9.10 Typ-Qualifizierer 

Außer der Speicherklasse, die Sie für eine Variable festlegen können, können Sie auch den Typ eines Objekts näher spezifizieren.
9.10.1 volatile 

Mit dem Schlüsselwort volatile modifizieren Sie eine Variable so, dass der Wert dieser Variablen vor jedem Zugriff neu aus dem Hauptspeicher eingelesen werden muss.
Meistens wird volatile bei der Treiberprogrammierung eingesetzt. Hier sehen Sie ein Beispiel, bei dem ein Programm diejenigen Ergebnisse in einer Schleife überprüft, die ins Register der CPU abgelegt wurden:
do { printf("Gerät X wird überprüft ...\n"); } while(reg & (STATUS_A|STATUS_B) == 0); printf("Gerät X Status ... [OK]\n");
Manche Compiler erkennen jetzt an der while-Schleife, dass hier immer die gleiche Adresse überprüft wird, und optimieren die do while-Schleife einfach weg. Dieser Vorgang wird dann nur einmal durchgeführt, da die Schleife weg ist. Wird dabei die Hardware nicht erkannt, entsteht ein Problem. Somit gilt für Variablen, die mit volatile deklariert sind, dass diese ohne jede Optimierung neu aus dem Hauptspeicher geladen werden und neue Werte auch sofort wieder dort abgelegt werden.
9.10.2 const 

Mit dem Typ-Qualifizierer const definieren Sie eine Konstante. Dies ist eine Variable, deren Wert im Laufe der Programmausführung nicht mehr geändert werden darf.
const int wert = 10; wert += 5; /* Fehler */
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.