Statisch in der C -Programmierung

Statisch in der C -Programmierung
In diesem Tutorial erklären wir das statische Schlüsselwort, indem wir es in Variablen und Funktionen anwenden. Static ist ein Schlüsselwort, das bei der C -Programmierung verwendet wird, und kann mithilfe der folgenden Syntax angewendet werden:

static Datentyp variabler Name

Statische lokale Variablen

Wenn eine Variable in einer Funktion statisch ist, bewahrt die Variable ihren Wert zwischen Funktionsaufrufen.

//Beispiel 1.C
#enthalten
int fun1 ()

int count = 0;
zählen ++;
Rückgabezahl;

int fun2 ()

statische int count = 0;
zählen ++;
Rückgabezahl;

int main ()

printf ("Fun1 1. Anrufrendite: %d \ n", fun1 ());
printf ("fun1 2. call returns: %d \ n \ n", fun1 ());
printf ("Fun2 1st Call Returns: %d \ n", fun2 ());
printf ("Fun2 2. Anruf returns: %d \ n", fun2 ());
Rückkehr 0;


In Beispiel 1.C, wir haben zwei Funktionen: fun1 () Und fun2 (). In fun1 (), Wir deklarieren eine Variable (Count) und initialisieren sie auf 0. Dann erhöhen wir die Zählvariable und geben den resultierenden Wert zurück. Verwendung hauptsächlich(), wir nennen fun1 () Zweimal und jedes Mal wird ein Wert von 1 zurückgegeben, da die Zählvariable gelöscht wird fun1 () abgeschlossen. In fun2 () Wir haben die Zählvariable als statische Variable deklariert. Daher bleibt sein Wert erhalten. Verwendung hauptsächlich(), wir nennen fun2 () Zweimal: Das erste Mal wird ein Wert von 1 zurückgegeben, und beim zweiten Mal wird ein Wert von 2 zurückgegeben.

Statische globale Variablen

Eine statische globale Variable verhält sich auf die gleiche Weise wie andere globale Variablen, kann jedoch nicht aus einem anderen C -Programm zugreifen.

Statische Funktionen

In C sind Funktionen standardmäßig global global. Wenn wir jedoch eine statische Funktion deklarieren, ist die Funktion lokal und kann nicht von einem anderen C -Programm zugegriffen werden.

Initialisierung statischer Variablen

Wenn eine statische Variable nicht explizit initialisiert wird, wird sie als 0 initialisiert.

// Beispiel2.C
#enthalten
int main ()

statische Int I;
printf ("Wert von i: %d \ n", i);
Rückkehr 0;


In Beispiel2.c, wir haben eine statische Variable i deklariert, die nicht initialisiert wird. Da die Variable jedoch statisch ist, wird sie automatisch auf 0 initialisiert.

Es ist wichtig zu beachten, dass eine statische Variable durch ein konstantes buchstäbliches initialisiert werden muss; Wir können den Rückgabewert einer Funktion nicht verwenden, um eine statische Variable zu initialisieren.

// Beispiel3.C
#enthalten
int fun1 ()

Rückkehr 5;

int main ()

static int i = fun1 ();
printf ("Wert von i: %d \ n", i);
Rückkehr 0;


In Beispiel3.c, wir versuchen, eine statische Variable durch den Rückgabewert von zu initialisieren fun1 (). Wie Sie jedoch sehen können, wird ein Fehler zurückgegeben, wenn der Code zusammengestellt wird.

Zusammenfassung

Die Lebensdauer einer statischen Variablen und die Lebensdauer des Programms sind gleich.

Wenn eine statische Variable nicht initialisiert wird, nimmt sie einen Standardwert von 0 an.

Weder eine globale statische Variable noch eine statische Funktion sind von einem anderen Programm als dem zugänglich, in dem sie definiert wurde.