C-Programmierung

Speicherklassen

Ausdrücke und Evaluierung | | Parameterübergabe

TypDeklarationSyntax-BeispielSichtbarkeitSpeicherortZweck
lokalin Funktionsrumpf{int x; …}in FunktionsrumpfStacktemporäre Variable z.B. für Zwischenergebnisse zur Vermeidung von Seiteneffekten
statischin Funktionsrumpf mit “static”{static int x=0; …}in FunktionsrumpfHeapZustandsvariable mit begrenzter Sichtbarkeit
globalaußerhalb eines Funktionsrumpfesint x=0; …überallHeapglobale Zustandsvariable = verboten
modullokalaußerhalb eines Funktionsrumpfes mit “static”static int x=0; …in ModulHeapModul-Zustandsvariable

$\pi\cdot$Daumen-Regel: je lokaler, desto besser!

In Java gibt es hauptsächlich die beiden ersten Variablentypen “lokal” und “statisch” (die sog. Hauptspeicherklassen). In C / C++ gibt es zusätzlich noch globale und modullokale Variablen.

Weil es nun in C / C++ globale Variablen gibt, heißt das trotzdem nicht, dass es nun besonders sinnvoll wäre, diese ohne triftigen Grund zu verwenden. Für den normalen Anwendungsprogrammierer gibt es tatsächlich keinen einzigen Grund, wieso man globale Variablen bräuchte. Sie sind daher verboten!

Ausdrücke und Evaluierung | | Parameterübergabe

Options: