Static Deklarationen in C

(aus C und C++ - Programmierung und Referenz, ISBN 3-8272-5066-8)

Gültigkeitsbereiche und Sichtbarkeit: (C)

In C(C++) wird jedem Objekt in Abhängigkeit davon, an welcher Stelle des Programms das Objekt/die Variable deklariert wird, ein Gültigkeitsbereich zugeordnet. Diese automatische Vergabe kann durch die Aufnahme bestimmter Speicherklassenspezifizierer in die Deklaration an die Bedürfnisse angepasst werden.

Ort der Deklaration

Nach dem Ort der Deklaration unterscheidet man die Bereichsklassen
  • Blockbereich: Objekte, die innerhalb eines Blocks (abgegrenzt durch die geschweiften Klammern {..}) deklariert werden, sind von lokaler Gültigkeit. Sie sind nur innerhalb des Blocks bekannt und existieren nur solange, wie der Block abgearbeitet wird. Der Compiler erzeugt diese Variablen dynamisch.
  • Dateibereich: Objekte, die außerhalb jeden Blocks deklariert werden, sind von globaler Gültigkeit und können ab dem Punkt ihrer Deklaration benutzt werden. Sie haben globale Lebensdauer, d.h. sie existieren, von Anbeginn des Programms bis zu dessen Ende.
  • ...

Sichtbarkeit

...

Speicherklassenspezifizierer

Bei der Deklaration einer Variablen kann die Typangabe durch die Angabe einer Speicherklasse ergänzt werden. die Speicherklasse bestimmt in Wechselwirkung mit dem Ort der Deklaration die Sichtbarkeit und die Lebensdauer der Variablen.

Speicherklasse static

Grundsätzlich impliziert das Schlüsselwort static lokale Gültigkeit und einmalige Allokation.

Damit ergeben sich drei wichtige wichtige Einsatzbereiche:
  • Bezeichner, die global deklariert sind, haben üblicherweise externe Bindung (das heißt, in Programmen, die aus mehreren Modulen zusammengelinkt werden, bezeichnen- sie in allen Modulen das gleiche Objekt). Werden sie als static deklariert, sind sie nur innerhalb ihres Moduls gueltig.
  • ...

-- PeterZumbruch - 27 Nov 2006
Topic revision: r1 - 2006-11-27, PeterZumbruch
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding GSI Wiki? Send feedback
Imprint (in German)
Privacy Policy (in German)