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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.