|
 |
 |
 |
|
|
c't Projekte - c't-Bot und c't-Sim -
Mailinglisten
[Voriger (Datum)]
[Nächster (Datum)]
[Voriger (Thread)]
[Nächster (Thread)]
[Nach Datum][Nach Thread]
Absender: Timo Sandmann
Datum: Do, 03.05.2007 16:59:10
In-reply-to:
<000101c78ced$19993fc0$fe78a8c0@mexpnew>
References:
<000101c78ced$19993fc0$fe78a8c0@mexpnew>
Hallo,
Am 02.05.2007 um 21:07 schrieb Frank Menzel:
Die Sache mit den volatile-Variablen-ehrlich gesagt keine Ahnung
warum. Weil das so woanders wohl auch überall gemacht wurde. Aber
da bin
ich leider nicht der große C-Spezi-durch die ganze Bot-Materie bin ich
aber auf dem Wege dahin :-)
nur kurz zur Information: Das Schlüsselwort "volatile" zwingt den
Compiler dazu, vor *jedem* Lesezugriff auf eine Variable dessen
Inhalt aus dem Speicher (RAM) zu holen und ihn nach *jedem*
Schreibzugriff auch dorthin zurückzuschreiben. Das kann von Vorteil
sein, wenn man sicherstellen möchte, dass ein Wert garantiert aktuell
ist (weil er für den Compiler transparent geändert wurde, z.B. durch
eine Interrupt Service Routine). Die Verwendung von volatile führt
aber i.d.R. zu größerem Code und langsamerer Ausführung.
Übrigens löst volatile das Problem auf einer 8 Bit-Architektur nur
bei Variablen, die 8 Bit groß sind, vollständig. Laden und Speichern
eines (u)int16 oder 32 kann trotzdem noch unterbrochen werden.
Gruß Timo
|
|
|