C : Interna
volatile
Die Auszeichnung "volatile" für eine Variable weist den Compiler darauf hin, daß für
den Zugriff keinerlei Optimierung angewendet werden darf.
Das wird z.B. für Zeiger auf Register speicheradressierbarer Bausteine verwendet.
{
volatile int * trigger_sample = 0x653482;
int i;
// Triggere die Sample-Hardware zehnmal
for( i = 0; i < 10; ++i )
{
*trigger_sample = 1; // triggert die Sample-Hardware
}
}
Ohne die "volatile"-Auszeichnung des Zeigers würde der Optimizer die for-Schleife entweder ganz
entfernen oder nur den inneren Befehl implementieren, da ihm die Ausführung der Schleife als redundant
erscheint.
const
Mit der Auszeichnung einer Variable als "const" wird diese auf "nur lesbar" (read-only) bzw. "nicht
veränderbar" gesetzt. Eine so ausgezeichnete Variable kann und muss natürlich initialisiert
werden.
Auch ein Funktionsparameter kann als "const" deklariert werden, z.B.
int showerror( const char * text )
In der Funktion "showerror" kann der Inhalt des Strings "text" nicht verändert werden.
Je nach der verwendeten Maschine werden die "const"-Variablen im Read-Only-Speicher abgelegt, so ein
solcher vorhanden ist. Das ist aber Compiler- und Linker-abhängig.
© Uwe Jantzen 13.12.23