-
-
Erfahrener Benutzer
Roboter-Spezialist
Danke für den Test askazo.
Das ist jetzt zwar nicht das erwartete Zitat aus einer Compileranleitung, aber macht erst einmal einen nachvollziehbaren Eindruck.
Mich hat nur die Aussage stutzig gemacht, dass man das volatile sowohl vor als auch hinter den Typ schreiben kann.
sast
-
Erfahrener Benutzer
Fleißiges Mitglied
Hi,
das liegt daran, dass der Datentyp "volatile int" ist und nicht die Variable! Der Typ bezieht sich dann auf alle folgenden Variablen in der gleichen Anweisung.
Ist z.B. ganz analog zu "unsigned": unsigned int t1, t2;
Beide(!) Variablen sind vom Typ "unsigned int".
Das ginge auch: volatile unsigned int vui1, vui1;
Wenn dein Compiler "typedef" erlaubt, kannst du schreiben:
typedef volatile unsigned int vui_t;
vui_t foo1, foo2;
vui_t *foo3 = &foo2;
foo3 ist dann ein nicht volatiler Pointer auf eine Variable eines volatilen Datentyps. Das heißt: foo3 kann im Register gehalten werden, aber der referenzierte Variableninhalt (d.h. foo2) muss jedes mal wieder neu gelesen werden.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen