Freigeben über


Statische Speicherklassenspezifizierer

Die statischen Speicherklassenspezifizierer, static und extern, können auf Objekte und Funktionen angewendet werden. Die folgende Tabelle zeigt, wo die Schlüsselwörter static und extern nicht verwendet werden können.

Verwendung von "static" und "extern"

Konstrukt

Kann "static"

verwendet werden?

Kann "extern"

verwendet werden?

Funktionsdeklarationen innerhalb eines Blocks

Nein

Ja

Formale Argumente für eine Funktion

Nein

Nein

Objekte in einem Block

Ja

Ja

Objekte außerhalb eines Blockes

Ja

Ja

Funktionen

Ja

Ja

Klassenmemberfunktionen

Ja

Nein

Klassenmemberdaten

Ja

Nein

typedef-Namen

Nein

Nein

Ein mithilfe des static-Schlüsselworts angegebener Name wird, mit Ausnahme der statischen Member einer Klasse mit externer Verknüpfung, intern verknüpft. Das heißt, er ist nicht außerhalb der aktuellen Übersetzungseinheit sichtbar. Ein mithilfe des Schlüsselworts extern angegebener Name weist eine externe Verknüpfung auf, es sei denn, er wurde zuvor als Name mit interner Verknüpfung definiert. Weitere Informationen zur Sichtbarkeit von Namen finden Sie unter Bereich und Programm und Verknüpfung.

Hinweis

Funktionen, die als Inline deklariert und keine Memberfunktionen sind, erhalten die gleichen Verknüpfungseigenschaften wie Funktionen, die als static deklariert sind.

Ein Klassenname, dessen Deklaration noch nicht vom Compiler gefunden wurde, kann in einer extern-Deklaration verwendet werden. Der Name, der mit einer solchen Deklaration eingeführt wird, kann erst verwendet werden, wenn die Klassendeklaration aufgetreten ist.

Siehe auch

Referenz

Speicherklassenspezifizierer