Burkhard schrieb:
> Ist das korrekt ? Oder ist es genau anders herum ?
const und volatile beziehen sich immer auf das was links von ihnen
steht. Es sei denn, diese Qualifier sind bereits ganz links, dann
beziehen sie sich ausnahmsweise auf den Teil des Datentyps rechts von
ihnen (was aber aufs gleiche rauskommt)
Also:
i da ist ein i
volatile i dieses i ist volatile
char volatile i dieses i ist ein volatile char
(Und das ist identisch zu volatile char i;
i ist ein char. Und dieser char ist volatile)
i es gibt ein i
* i dieses i ist ein Pointer.
volatile * i dieser Pointer zeigt auf etwas was volatile ist
char volatile * i Nämlich einen char
also ist i ein Pointer der auf einen volatile char zeigt
i es gibt ein i
volatile i dieses i ist volatile
* volatile i dieses i ist ein volatiler Pointer
char * volatile i und dieser volatile Pointer zeigt auf einen char
(der selbst aber nicht volatile ist)
1 | char volatile * volatile i
|
i es gibt ein i
volatile i dieses i ist volatile
* volatile i und dieses i ist ein volatile Pointer
volatile * volatile i und dieser volatile Pointer zeigt auf
etwas,
was selbst auch volatile ist
char volatile * volatile i nämlich einen char
i ist also ein volatiler Pointer, der auf einen volatilen char zeigt.
immer beim Variablennamen anfangen und sich nach aussen durcharbeiten!