Zitat von
pebisoft
hallo,
"volatile" ist das gegenteil von "const". in volatile können
die variablen während des programmablaufes wechseln.
Jein. Das ist aber noch nicht alles. Volatile ist primär eine Kennzeichnung für den Optimiere im gcc, die angibt, dass eine Variable auch ausserhalb des regulären Programmflusses den Wert ändern kann, z.B. durch eine Interrupt-Routine oder weil die Variable auf ein Hardware-Register gemapt ist.
Volatile heisst für der Optimierer "don't touch".
Wenn eine Volatile Variable gesetzt bzw. abgefragt wird, wird diese Operation auch immer ausgeführt.
Beispiel:
Code:
int t;
t = 0;
if (t) {
// Wird vom Compiler idR wegoptimiert, da er erkennt, dass t=0 ist.
}
volatile int t;
t = 0;
if (t) {
// Wird nicht wegoptimiert
}
-Klaus
Lesezeichen