9.9 Schlüsselwörter für Variablen – Speicherklassen 

Es gibt noch weitere Schlüsselwörter in C für Variablen außer static, sogenannte Speicherklassen, die hier in Kurzform erwähnt werden sollen. Das Thema Speicherklassen gehört eigentlich in das Kapitel über 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 initialisiert 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 über die zusätzlichen Speicherklassen-Spezifizierer (einschließlich static).
9.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.
9.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.
9.9.3 register 

Das Schlüsselwort register 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.
9.9.4 static 

Das Schlüsselwort static wird vor immer währenden Variablen mit einem beschränkten Geltungsbereich gesetzt.
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.