Freigeben über


C-Speicherklassen

Die „Speicherklasse“ einer Variablen bestimmt, ob das Element eine „Global“ oder „Local“ Lebensdauer verfügt.C ruft diese beiden Lebensdauer „static“ und „Automatically.“ Ein Element mit einer globalen Lebensdauer vorhanden und verfügt über einen Wert, die während der Ausführung des Programms.Alle Funktionen besitzen globale Lebensdauer.

Automatische Variablen oder Lebensdauer mit lokalen Variablen sind zugeordneter bei jedem Speichern neuer in Execution Control Block übergeben wird, in dem sie definiert sind.Wenn die Ausführung gibt sinnvolle nicht mehr die Variablen über Werte.

C stellt die folgenden: Speicherklassenspezifizierer

Syntax

  • Speicherklassenspezifizierer:
    Auto

    Register

    static

    extern

    typedef

    bestimmten**__declspec** (/*) erweiterte-Deklassifizierung-Modifizierer-folgendes Microsoft *

Neben __declspeckönnen Sie nur einen Speicherklassenspezifizierer in der Deklaration Bezeichner in einer Deklaration verwenden.Wenn keine Speicherklassen Deklarationen erstellen, das heißt sie in einem Block automatische Objekte.

Die Elemente, die mit auto deklarierten oder Register Bezeichner verfügen über lokale Lebensdauer.Die Elemente, die mit dem static oder extern Spezifizierer deklariert werden, besitzen globale Lebensdauer.

Da typedef und __declspec semantisch zu den anderen Terminals mit vier Speicherklassenspezifizierern gesondert behandelt werden, sind sie unterschiedlich.Spezielle Informationen zu typedeffinden Sie unter Typedef-Deklarationen.Spezielle Informationen zu __declspecfinden Sie unter Erweiterte Speicherklassen-Attribute.

Die Platzierung der Variablen und den Funktionsdeklarationen innerhalb der Quelldateien und Speicherklasse wirkt sich auch auf Sichtbarkeit.Deklarationen außerhalb aller Funktionsdefinitionen sind gesagt, die in der „externen Ebene angezeigt werden.“ Deklarationen innerhalb von Funktionsdefinitionen werden auf der „interne Schicht.“

Die genaue Bedeutung der einzelnen Speicherklassenspezifizierers hängt von zwei Faktoren ab:

  • Ob die Deklaration für die externe oder interne Schicht angezeigt wird

  • Ob das Element deklariert wird, eine Variable oder eine Funktion ist

Speicherklassenspezifizierer für Deklarationen der externen Ebene und Speicherklassenspezifizierer für Intern-LEVEL-Deklarationen beschreiben die Speicherklassenspezifizierer terminals in jeder Deklaration und Art für das Standardverhalten, wenn der Speicherklassenspezifizierer aus einer Variablen weggelassen wird.SpeicherklassenspezifiziererSpeicherklassenspezifizierer bei Funktionsdeklarationen erläutert, die mit Funktionen verwendet werden.

Siehe auch

Konzepte

Deklarationen und Typen