Erklärung von "volatile"

Gast #703988
Lesenswert?

Mir ist noch nicht ganz klar wozu man volatile benutzt, aber ich habe 
folgende Idee:
Ich habe ein Register, auf das ich per Software zugreifen kann und so 
dessen Wert verändern kann! Zudem kann ich auf dieses Register per 
Hardware, beispielsweise per Knopfdruck, zugreifen und so dessen Wert 
verändern! Nun benutzt man volatile, um dem Compiler mitzuteilen, dass 
dieses Register nicht unbedingt von der Software verändert werden muss 
und dass er dieses Register immer neu auslesen muss und nicht irgendwo 
in einem tempöraren Register zwischenspeichern darf!
Ist das so richtig?
Gast #703998
Lesenswert?

Beitrag "C-Frage: Was ist volatile?"
Beitrag "Was bedeutet "volatile"?"
oder auch
http://www.mikrocontroller.net/forum/mikrocontroller-elektronik?filter=volatile

Desweiteren wäre dieser Thread im GCC-Unterforum wesentlich besser 
aufgehoben.

>Zudem kann ich auf dieses Register per Hardware, beispielsweise per >Knopfdruck, 
zugreifen und so dessen Wert verändern!

Man kann nicht per Hardware auf Register zugreifen.

volatile wird genutzt, wenn der Compiler nicht wissen kann, dass die 
Variable inzwischen geändert hat/haben könnte(zB in einer 
Interruptroutine).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren