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

C Lagerklasse

Speicherklasse C

In diesem Tutorial lernen Sie den Umfang und die Lebensdauer lokaler und globaler Variablen kennen. Außerdem lernen Sie statische und Registervariablen kennen.

Jede Variable in der C-Programmierung hat zwei Eigenschaften:Typ und Speicherklasse.

Typ bezieht sich auf den Datentyp einer Variablen. Und die Speicherklasse bestimmt den Geltungsbereich, die Sichtbarkeit und die Lebensdauer einer Variablen.

Es gibt 4 Arten von Speicherklassen:

  1. automatisch
  2. extern
  3. statisch
  4. registrieren

Lokale Variable

Die innerhalb eines Blocks deklarierten Variablen sind automatische oder lokale Variablen. Die lokalen Variablen existieren nur innerhalb des Blocks, in dem sie deklariert sind.

Nehmen wir ein Beispiel.

#include <stdio.h>

int main(void) {
  
  for (int i = 0; i < 5; ++i) {
     printf("C programming");
  }
  
 // Error: i is not declared at this point
  printf("%d", i);  
  return 0;
}

Wenn Sie das obige Programm ausführen, erhalten Sie einen Fehler undeclared identifier i . Es ist, weil ich wird innerhalb von for deklariert Loop-Block. Außerhalb des Blocks ist es nicht deklariert.

Nehmen wir ein anderes Beispiel.


int main() {
    int n1; // n1 is a local variable to main()
}

void func() {
   int n2;  // n2 is a local variable to func()
}

Im obigen Beispiel n1 ist lokal zu main() und n2 ist lokal zu func() .

Das bedeutet, dass Sie nicht auf n1 zugreifen können Variable in func() da es nur in main() existiert . Ebenso können Sie nicht auf n2 zugreifen Variable in main() da es nur in func() existiert .


Globale Variable

Variablen, die außerhalb aller Funktionen deklariert werden, werden als externe oder globale Variablen bezeichnet. Sie sind von jeder Funktion innerhalb des Programms aus zugänglich.


Beispiel 1:Globale Variable

#include <stdio.h>
void display();

int n = 5;  // global variable

int main()
{
    ++n;     
    display();
    return 0;
}

void display()
{
    ++n;   
    printf("n = %d", n);
}

Ausgabe

n = 7

Angenommen, eine globale Variable ist in file1 deklariert . Wenn Sie versuchen, diese Variable in einer anderen Datei zu verwenden file2 , wird sich der Compiler beschweren. Um dieses Problem zu lösen, geben Sie das Schlüsselwort extern ein wird in file2 verwendet um anzuzeigen, dass die externe Variable in einer anderen Datei deklariert ist.


Variable registrieren

Die register Das Schlüsselwort wird verwendet, um Registervariablen zu deklarieren. Registervariablen sollten schneller sein als lokale Variablen.

Moderne Compiler sind jedoch sehr gut in der Codeoptimierung, und es besteht die seltene Chance, dass die Verwendung von Registervariablen Ihr Programm schneller macht.

Sofern Sie nicht an eingebetteten Systemen arbeiten, bei denen Sie wissen, wie Code für die jeweilige Anwendung optimiert wird, werden Registervariablen nicht verwendet.


Statische Variable

Eine statische Variable wird mit static deklariert Stichwort. Zum Beispiel;

static int i;

Der Wert einer statischen Variablen bleibt bis zum Ende des Programms bestehen.


Beispiel 2:Statische Variable

#include <stdio.h>
void display();

int main()
{
    display();
    display();
}
void display()
{
    static int c = 1;
    c += 5;
    printf("%d  ",c);
}

Ausgabe

6 11

Beim ersten Funktionsaufruf wird der Wert von c wird auf 1 initialisiert. Sein Wert wird um 5 erhöht. Nun wird der Wert von c ist 6, die auf dem Bildschirm gedruckt wird.

Beim zweiten Funktionsaufruf c wird nicht wieder auf 1 initialisiert. Das liegt daran, dass c ist eine statische Variable. Der Wert c um 5 erhöht. Jetzt ist sein Wert 11, was auf dem Bildschirm ausgegeben wird.


C Sprache

  1. C#-Variablen und (primitive) Datentypen
  2. C#-Variablenbereich
  3. Statisches C#-Schlüsselwort
  4. C++-Klassenvorlagen
  5. C-Variablen, Konstanten und Literale
  6. C++-Variablen und -Typen:int, double, char, string, bool
  7. Java - Variablentypen
  8. C - Variablen
  9. C - Speicherklassen
  10. C - Geltungsbereichsregeln