Latest web development tutorials

C-Speicherklasse

Lagerklasse Definition C Programmvariablen / Bereich (Sichtbarkeit) Funktion und Lebensdauer. Diese Bezeich platziert, bevor sie die Art ändern. unten sind Speicherklasse C im Programm verfügbaren Eingestellt:

  • auto
  • registrieren
  • statisch
  • extern

Auto-Speicherklasse

Auto - Storage - Klasse ist alle lokalen Variablen Standardspeicherklasse.

{
   int mount;
   auto int month;
}

Das obige Beispiel definiert zwei Variablen mit dem gleichen Speicherklasse, Auto kann nur innerhalb einer Funktion verwendet werden, nämlich Auto ändert nur die lokale Variable.

registrieren Speicherklasse

registrieren Speicherklasse wird verwendet , die in den Registern anstelle von RAM in den lokalen Variablen zu definieren , gespeichert.Dies bedeutet, dass die maximale Größe der Variablen auf die Größe des Registers (normalerweise ein Wort) entspricht, und nicht, um es unären angewendet werden kann "&" operator (weil es keine Speicherstelle aufweist).

{
   register int  miles;
}

Benötigen Sie nur für einen schnellen Zugriff auf Variablen, wie zB Zählerregister. Es sollte auch angemerkt werden, dass die Definition von "Register" bedeutet nicht, dass Variable in einem Register gespeichert werden, bedeutet dies, dass die Variable in einem Register gespeichert werden kann, abhängig von den Beschränkungen der Hardware und Implementierung.

statische Speicherklasse

statische Speicherklasse weist den Compiler an die Existenz von lokalen Variablen im Programm des Lebenszyklus zu halten, ohne dass sie jedes Mal , wenn Sie außerhalb des Bereichs eingeben und erzeugt und zerstört werden.Daher kann die Verwendung von statischen lokalen Variablen geändert werden, um den Wert der lokalen Variablen zwischen Funktionsaufrufe zu halten.

statische Modifier kann auf globale Variablen angewendet werden. Wenn die statische globale Variable verändert, wird die Variable, die den Umfang der Erklärung in seinen Dateien begrenzen.

Programmierung in C, wenn aufstatische Datenelemente der Klasse verwendet, werden alle Objekte werden in nur einer Kopie der Klasse führen Mitgliedern gemeinsam genutzt werden.

#include <stdio.h>
 
/* 函数声明 */
void func(void);
 
static int count = 5; /* 全局变量 */
 
main()
{
   while(count--)
   {
      func();
   }
   return 0;
}
/* 函数定义 */
void func( void )
{
   static int i = 5; /* 局部静态变量 */
   i++;

   printf("i is %d and count is %d\n", i, count);
}

Vielleicht können Sie noch nicht diese Instanz verstehen, weil ich Funktionen und globale Variablen verwendet haben, diese beiden Konzepte bisher nicht erklären. Auch wenn Sie nicht vollständig verstehen, spielt es keine Rolle, die den nachfolgenden Kapiteln wir im Detail erläutern. Wenn der obige Code kompiliert und ausgeführt wird, erzeugt es die folgenden Ergebnisse:

i is 6 and count is 4
i is 7 and count is 3
i is 8 and count is 2
i is 9 and count is 1
i is 10 and count is 0

extern Speicherklasse

extern Speicherklasse verwendet wird , einen Verweis auf eine globale Variable zur Verfügung zu stellen, sind die globale Variable für alle Programmdateien sichtbar.Wenn Sie 'extern' verwenden, die eine Variable nicht initialisiert werden kann, wird der Variablenname zu einem vorher definierten Speicherort verweisen.

Wenn Sie mehrere Dokumente haben und eine globale Variable oder Funktion definieren , die in anderen Dokumenten verwendet werden können, können Sieexternin anderen Dateien verwenden , um eine Variable oder Funktion definiert Verweis erhalten. Es kannverstanden werden,extern verwendet, um eine globale Variable oder Funktion in einer anderen Datei zu deklarieren.

Modifizierer extern wird in der Regel verwendet, wenn es zwei oder mehrere Dateien die gleichen globalen Variablen oder Funktionen der Zeit zu teilen, wie folgt:

Erste Datei: main.c

#include <stdio.h>
 
int count ;
extern void write_extern();
 
main()
{
   count = 5;
   write_extern();
}

Die zweite Datei: support.c

#include <stdio.h>
 
extern int count;
 
void write_extern(void)
{
   printf("count is %d\n", count);
}

Hier wird die zweite DateiexternSchlüsselwort in der ersten Anweisung zuzählenhat in einer Datei main.c definiert Nun kompilieren Sie beide Dateien, wie folgt:

 $gcc main.c support.c

Dies wirda.out ausführbares Programm erzeugen, wenn das Programm ausgeführt wird, wird es die folgenden Ergebnisse erzielt:

5