"volatile" Argumente der Funktion erneut definieren?

Gast #3689355
Lesenswert?

Eine Verständnisfrage:

Ich habe einen Zeiger, der auf eine Adresse zeigt, die auf jedem Fall 
bei jedem Zugriff neu gelesen werden soll. Drum wird er natürlich 
"volatile" definiert. Nun möchte ich diese Adresse einer Funktion 
übergeben.

Ist es nun eigentlich zwingend erforderlich auch die Parameter der 
Funktion als "volatile" zu definieren (obwohl sie dem Compiler bereits 
als "volatile" bekannt ist)?

1
volatile int *volatAddress;
2

3
void func(int *address)
4
{
5
    // blablabla
6
}
Gast #3689377
Lesenswert?

brechbunkt schrieb:
> Ist es nun eigentlich zwingend erforderlich auch die Parameter der
> Funktion als "volatile" zu definieren (obwohl sie dem Compiler bereits
> als "volatile" bekannt ist)?

Natürlich. Was bringt es denn, wenn der Compiler beim Aufruf weiß, daß 
das Zeigerziel volatile ist? Deshalb verändert sich ja die Funktion 
selbst nicht auf einmal.
Übrigens sollte der Compiler bei deinem Beispiel auch warnen, daß das 
volatile beim Aufruf verlorengeht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren