9.11 Geltungsbereich von Variablen 

Die Lebensdauer und der Geltungsbereich von Variablen hängen somit von zwei Punkten ab:
- von der Position der Deklaration einer Variablen
- vom Speicherklassen-Spezifizierer, der vor einer Variablen steht
Je nachdem, an welcher Stelle eine Variable in einer Quelldatei deklariert wurde, gibt es folgende Geltungsbereiche:
Abbildung 9.2 Geltungsbereiche von Variablen
- Block (block scope): Wird eine Variable in einem Anweisungsblock ({}) deklariert, reichen der Geltungsbereich und die Lebensdauer dieser Variablen vom Anfang des Anweisungsblocks bis zu seinem Ende.
- Funktion (local scope): Wird eine Variable in einer Funktion deklariert, reichen der Geltungsbereich und die Lebensdauer vom Anfang des Funktionsblocks bis zu seinem Ende. Es sei denn, in der Funktion wird eine Variable innerhalb eines Blocks deklariert. Dann gilt diese Variable nur noch in diesem Block.
- Datei (file scope): Wird eine Variable außerhalb von Funktionen und Anweisungsblöcken deklariert, reichen Geltungsbereich und Lebensdauer vom Punkt der Deklaration bis zum Dateiende.
Wie Sie im Abschnitt über lokale Variablen erfahren haben, gilt außerdem, dass die äußere Deklaration nicht mehr sichtbar ist, wenn eine Variable mit demselben Namen in einem inneren Block deklariert wird. Beim Verlassen des inneren Blocks ist die äußere Variable wieder sichtbar, und die innere Variable gibt es nicht mehr.
Der Geltungsbereich und die Lebensdauer von Variablen können noch auf eine andere Weise verändert werden, nämlich mithilfe des Speicherklassen-Spezifizierers (siehe Tabelle 9.1).
Position | Speicherklasse | Lebensdauer | Geltungsbereich |
In einer Funktion |
keine, auto, register |
automatisch |
Block |
In einer Funktion |
extern, static |
statisch |
Block |
Außerhalb der Funktion |
keine, extern, static |
statisch |
Datei |
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.