11.9 Schlüsselworte für Variablen – Speicherklassen
 
Es gibt noch weitere Schlüsselworte in C für Variablen außer static, so genannte Speicherklassen, die hier in Kurzform erwähnt werden sollen. Das Thema Speicherklassen gehört eigentlich in das Kapitel der Variablen, hätte einen Anfänger zu Beginn aber nur verwirrt. Mit den Speicherklassen legen Sie den Geltungsbereich in der Datei, die Lebensdauer und die Bindung einer Variablen fest. Für Variablen gibt es zwei Möglichkeiten der Lebensdauer:
|
Die statische Lebensdauer – Die Variable wird zu Programmbeginn einmal deklariert sowie initialsiert und existiert während der gesamten Programmausführung. |
|
Die automatische Lebensdauer – Die Variable wird beim Eintritt in den Anweisungsblock, in dem sie definiert ist, neu erzeugt und beim Verlassen des Anweisungsblocks wieder gelöscht. |
Jetzt folgt ein Überblick der zusätzlichen Speicherklassen-Spezifizierer (einschließlich static).
11.9.1 auto
 
Der Name kommt daher, dass durch das Voranstellen des Schlüsselworts auto die Variable automatisch angelegt und auch automatisch wieder gelöscht wird, ohne dass sich der Programmierer darum kümmern muss. Der Bezugsrahmen von auto ist derselbe wie bei lokalen Variablen. So ist zum Beispiel
int zahl = 5;
dasselbe wie
auto int zahl = 5;
Folglich ist das Schlüsselwort auto überflüssig.
11.9.2 extern
 
Befindet sich die Variable in einer anderen Datei, wird das Schlüsselwort extern davor gesetzt. Diese Speicherklasse wird für Variablen verwendet, die im gesamten Programm verwendet werden können.
11.9.3 register
 
Dieses Schlüsselwort wird heute eigentlich überhaupt nicht mehr benutzt. Der Bezugsrahmen ist derselbe wie bei auto und lokalen Variablen. Durch Voransetzen des Schlüsselworts register weisen Sie den Compiler an, eine Variable so lange wie möglich im Prozessorregister (CPU-Register) zu halten, um dann blitzschnell darauf zugreifen zu können. Denn Prozessorregister arbeiten wesentlich schneller als Arbeitsspeicher. Allgemein wird vom Gebrauch von register abgeraten, denn ob und welche Variable der Compiler in dem schnellen Prozessorregister hält, entscheidet er letztlich selbst. Somit ist das Schlüsselwort eigentlich nicht erforderlich.
11.9.4 static
 
Dieses Schlüsselwort wird vor immer währenden Variablen mit einem beschränkten Geltungsbereich gesetzt.
|