Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C - Speicherklassen

Eine Speicherklasse definiert den Geltungsbereich (Sichtbarkeit) und die Lebensdauer von Variablen und/oder Funktionen innerhalb eines C-Programms. Sie stehen vor dem Typ, den sie ändern. Wir haben vier verschiedene Speicherklassen in einem C-Programm −

Die automatische Speicherklasse

Das auto Speicherklasse ist die Standardspeicherklasse für alle lokalen Variablen.

{
   int mount;
   auto int month;
}

Das obige Beispiel definiert zwei Variablen in derselben Speicherklasse. 'auto' kann nur innerhalb von Funktionen, also lokalen Variablen, verwendet werden.

Das Register Speicherklasse

Das Register Die Speicherklasse wird verwendet, um lokale Variablen zu definieren, die in einem Register statt im RAM gespeichert werden sollen. Das bedeutet, dass die Variable eine maximale Größe hat, die der Registergröße entspricht (normalerweise ein Wort) und dass der unäre '&'-Operator nicht darauf angewendet werden kann (da sie keinen Speicherplatz hat).

{
   register int  miles;
}

Das Register sollte nur für Variablen verwendet werden, die einen schnellen Zugriff erfordern, wie z. B. Zähler. Es sollte auch beachtet werden, dass die Definition von „Register“ nicht bedeutet, dass die Variable in einem Register gespeichert wird. Das bedeutet, dass es abhängig von Hardware- und Implementierungseinschränkungen in einem Register gespeichert werden KÖNNTE.

Die statische Speicherklasse

Die statische Die Speicherklasse weist den Compiler an, eine lokale Variable während der Lebensdauer des Programms bestehen zu lassen, anstatt sie jedes Mal zu erstellen und zu zerstören, wenn sie in den Gültigkeitsbereich gelangt und aus diesem herausgeht. Wenn Sie lokale Variablen also statisch machen, können sie ihre Werte zwischen Funktionsaufrufen beibehalten.

Der statische Modifikator kann auch auf globale Variablen angewendet werden. Wenn dies geschehen ist, wird der Geltungsbereich dieser Variablen auf die Datei beschränkt, in der sie deklariert ist.

In der C-Programmierung, wenn statisch für eine globale Variable verwendet wird, bewirkt dies, dass nur eine Kopie dieses Elements von allen Objekten seiner Klasse gemeinsam genutzt wird.

Live-Demo
#include <stdio.h>
 
/* function declaration */
void func(void);
 
static int count = 5; /* global variable */
 
main() {

   while(count--) {
      func();
   }
	
   return 0;
}

/* function definition */
void func( void ) {

   static int i = 5; /* local static variable */
   i++;

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

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt er das folgende Ergebnis −

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

Die externe Speicherklasse

Die externe Die Speicherklasse wird verwendet, um eine Referenz auf eine globale Variable anzugeben, die für ALLE Programmdateien sichtbar ist. Bei Verwendung von 'extern' kann die Variable aber nicht initialisiert werden, sondern zeigt den Variablennamen auf einen zuvor definierten Speicherort.

Wenn Sie mehrere Dateien haben und eine globale Variable oder Funktion definieren, die auch in anderen Dateien verwendet wird, dann extern wird in einer anderen Datei verwendet, um die Referenz einer definierten Variablen oder Funktion bereitzustellen. Nur zum Verständnis, extern wird verwendet, um eine globale Variable oder Funktion in einer anderen Datei zu deklarieren.

Der extern-Modifikator wird am häufigsten verwendet, wenn es zwei oder mehr Dateien gibt, die dieselben globalen Variablen oder Funktionen gemeinsam nutzen, wie unten erklärt.

Erste Datei:main.c

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

Zweite Datei:support.c

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

Hier extern wird verwendet, um count zu deklarieren in der zweiten Datei, wo es seine Definition in der ersten Datei main.c hat. Kompilieren Sie nun diese beiden Dateien wie folgt −

$gcc main.c support.c

Es erzeugt das ausführbare Programm a.out . Wenn dieses Programm ausgeführt wird, erzeugt es das folgende Ergebnis −

count is 5

C Sprache

  1. C++-Klassen und -Objekte
  2. C++ Friend-Funktion und Friend-Klassen
  3. C Lagerklasse
  4. Strukturen und Klassen in C++
  5. Python String count() mit BEISPIELE
  6. Python List count() mit BEISPIELE
  7. Java - Objekt und Klassen
  8. Speicherklassen in C++
  9. Schnittstellen in C++ (Abstrakte Klassen)
  10. C# - Klassen