C Forever

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