Home

Speicherklassen

Speicherklassen, auch als storage classes bekannt, bezeichnen in der Programmierung Kategorien von Objekten danach, wie sie Speicher erhalten, wie lange sie leben und welchen Sichtbarkeits- bzw. Linkage-Bereich sie haben. Sie helfen zu verstehen, wann Speicher reserviert wird, wie lange ein Objekt existiert und in welchem Umfang es im Programm sichtbar ist.

Die zentrale Unterscheidung liegt in der Speicherdauer (Lebensdauer) und der Sichtbarkeit eines Objekts. Objekte mit automatischer

In C und C++ gehören zu den klassischen Speicherklassen auto, register, static und extern. Neuere Sprachstandards

Lebensdauer
(oft
auto
genannt)
werden
beim
Betreten
eines
Blocks
erstellt
und
beim
Verlassen
des
Blocks
zerstört.
Objekte
mit
statischer
Lebensdauer
existieren
dauerhaft
über
die
Programmlaufzeit
hinweg,
unabhängig
davon,
ob
der
Zugriff
aus
dem
jeweiligen
Block
erfolgt.
Externe
Verknüpfung
(extern)
erlaubt
es,
Variablen
od
er
Funktionen
in
mehreren
Übersetzungsgruppen
zu
verwenden,
indem
sie
außerhalb
des
aktuellen
Übersetzungsblocks
sichtbar
gemacht
werden.
Der
Hinweis,
ein
Objekt
in
einem
Register
(register)
zu
speichern,
dient
dem
Compiler
als
Optimierungsvorschlag;
moderne
Compiler
ignorieren
diese
Vorgabe
oft,
sodass
der
Begriff
eher
historisch
ist.
fügen
thread_local
hinzu,
um
objektorientierte
oder
mehrthreadige
Programme
mit
thread-local
Speicherbereichen
zu
unterstützen.
Beachten
Sie,
dass
mutable
kein
Speicherklassen-Begriff
ist,
sondern
eine
Qualifikation
für
Klassenmitglieder,
die
Änderungen
auch
bei
const-Objekten
ermöglicht.
Speicherklassen
beeinflussen
somit
Lebensdauer,
Sichtbarkeit
und
Verknüpfung
von
Objekten
und
dienen
der
Organisation
des
Speichermanagements
im
Quelltext.