Speicherklassen in C

Speicherklassen in C
Speicherkurse sind ein sehr wichtiges Thema in C. Wenn wir unser Konzept in C entwickelt haben, insbesondere über das Leben und den Umfang einer Variablen, müssen wir uns über Speicherklassen in C informieren. In DOS-basierter Architektur oder 16-Bit-Architektur wie Turbo C ++ 3. 0, es nimmt die Erinnerung an 2 Bytes. Aber in 32-Bit- oder 64-Bit-Architektur wie Dev C ++ nehmen Codeblöcke und Ganzzahlen den Gedächtnis von 4 Bytes.

Drei Eigenschaften von Variablen

  1. Name der Variablen.
  2. Größe des Speicherblocks.
  3. Art des Inhalts.

Andere Eigenschaften der Variablen

Standardwert, Umfang, Leben, Speicherung.

Standardwert: Wenn wir zum Zeitpunkt der Variablenerklärung keinen Wert in eine Variable initialisieren, wie lautet der Wert der Variablen x dann? Dann wird der Wert von x als Standardwert bezeichnet, was ein weiteres Merkmal der Variablen ist.

Lagerung: Speicher bedeutet, dass der Speicher für eine Variable entweder RAM oder im CPU -Register zugewiesen wird.

Umfang: Die Einschränkungen oder Bereiche, in denen wir auf eine Variable zugreifen können

Leben: Die Spanne zwischen Schaffung und Zerstörung einer Variablen wird als Leben bezeichnet. Diese 4 Eigenschaften können wir zum Zeitpunkt der Erklärung einer Variablen erkennen.

In der Erklärungserklärung befinden sich 4 Arten von Speicherklassen.

  1. Automatisch
  2. Registrieren
  3. Statisch
  4. Extern
Speicherklasse Stichwort Standardwert Lagerung Umfang Leben
1. Automatisch Auto Müll RAM Begrenzt auf die Blöcke, in denen es deklariert wird Bis zur Ausführung des Blocks, in dem er deklariert wird
2. Registrieren registrieren Müll registrieren Dasselbe Dasselbe
3. Statisch statisch 0 (Null) RAM Dasselbe Bis zum Ende des Programms
4. Extern extern 0 (Null) RAM Global Dasselbe

Automatisches Speicherklassenprogramm

Programmierbeispiel1

#enthalten
int main ()

// standardmäßig automatische Variable;
int x = 5;
printf ("%d \ n", x);

int x = 2;
printf ("%d \ n", x);

printf ("%d \ n", x);
Rückkehr 0;

Ausgang

Erläuterung

Mit dem Pfeilsymbol können wir ein automatisches Schlüsselwort schreiben, um die Variable automatisch zu machen. Wenn wir dort nichts schreiben, ist die Variable ein automatischer Typ (standardmäßig). Die Regel besteht darin, der lokalen Variablen eine höhere Priorität zu geben, wenn der Name zweier Variablen innerhalb der Funktion gleich ist.

Registrieren Sie Speicherklassenprogramm

Programmierbeispiel 2

#enthalten
int main ()

// Register -Schlüsselwort wird verwendet
Registrieren Sie int x = 4;
int y;
y = x ++;
X--;
y = x+5;
printf (" %d %d", x, y);
Rückkehr 0;

Ausgang

Erläuterung

Wenn in einem Programm einige Variablen wiederholt verwendet werden, speichern wir in diesem Fall die Variable X in einem CPU -Register anstelle von RAM. Es verkürzt die Verarbeitungszeit unseres Programms, ist jedoch nur int und char bedeutet, dass kleiner Speicher schwarz bedeutet. Wenn das Register nicht verfügbar ist, wandelt es die Registerspeicherklasse automatisch in eine Autoklasse um.

Statische Speicherklassenprogramm

Programmierbeispiel 3

#enthalten
void F1 ();
int main ()

F1 ();
F1 ();
Rückkehr 0;

void F1 ()

int i = 0;
i ++;
printf ("i =%d \ n", i);

Ausgang

Erläuterung

Hier erhalten wir Ergebnis zwei 1, weil wir die Variable standardmäßig automatisch deklarieren.

Programmierbeispiel 4

#enthalten
void F1 ();
int main ()

F1 ();
F1 ();
Rückkehr 0;

void F1 ()

// statische Variable wird deklariert;
statische int i = 0;
i ++;
printf ("i =%d \ n", i);

Ausgang

Erläuterung

Da es sich um eine statische Variable handelt, wird diese Variable nicht aus dem Körper von F1 zerstört. Wenn f1 () als 2. Mal bezeichnet wird, beträgt der Ausgang 2.

Externe Speicherklasse

Programmierbeispiel 5

#enthalten
int x;
int main ()

// extern wird deklariert;
extern int x;
printf ("x =%d", x);
void f1 (void);
F1 ();
printf ("x =%d", x);
Rückkehr 0;

void F1 ()

x ++;
printf ("x =%d", x);

Ausgang

Erläuterung

Da es sich um eine globale Variable handelt, ist die Variable von überall im Programm aus zugänglich, und ihr Leben ist im gesamten Programm.1st printf () Funktion Drucken Sie den Wert von x = 0, da der Standardwert = 0 ist, dann ruft F1 () auf, dann wird x auf 1 erhöht und drucken Sie den Wert 1 drucken. Dann geht die Kontrolle erneut zur main () -Funktion nach F1 () und druckt den Wert von x erneut 1 aus 1.

Programmierbeispiel 6

#enthalten
int x;
void F1 ();
int main ()

extern int x;
printf ("x =%d \ n", x);
F1 ();
printf ("x =%d \ n", x);
Rückkehr 0;

void F1 ()

int x = 5;
x ++;
printf ("x =%d \ n", x);

Ausgang

Erläuterung

Da die Variable x in der Funktion f1 () eine automatische Variable ist, ist sie nur im F1 () zugänglich, sie ist nur zugänglich.Hier drucken Sie hier die printf () -Funktion den Wert von x = 5, aber in main () -Funktion wird x a als externe Variable behandelt, da x als global deklariert wird. Es druckt also den Wert von x = 0.

Wo deklarieren wir das externe Schlüsselwort??

Eine externe Variable wird außerhalb jeder Funktion deklariert. Es wird jedoch bezeichnet, dass sich die Variable in der Hauptfunktion befindet, wie in diesem Beispiel gezeigt, oder sie überall im Programm gekennzeichnet ist.

Abschluss

Aus dem oben genannten Konzept von C-Sprachspeicherklassen ist dem Leser klar, dass wir bei der Verwaltung von Daten über Software eine Variable oder einen Speicherplatz benötigen, um die Daten zu speichern. Wir haben jetzt eine klare Vorstellung aus diesem Artikel darüber, wie die Daten in einer Variablen gespeichert werden sollen.