Statisch in der C-Programmierung

Static C Programming



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

statisch {Datentyp} {Variablenname}







Statische lokale Variablen

Wenn eine Variable in einer Funktion statisch ist, behält die Variable ihren Wert zwischen Funktionsaufrufen bei.



//Beispiel1.c

#enthalten

intSpaß1()
{

intzählen=0;
zählen++;
Rückkehrzählen;
}

intSpaß2()
{
statisch intzählen=0;
zählen++;
Rückkehrzählen;
}

inthauptsächlich()
{
druckenf ('fun1 1. Aufruf gibt zurück: %d ',Spaß1());
druckenf ('fun1 2. Aufruf liefert : %d ',Spaß1());

druckenf ('fun2 1. Aufruf gibt zurück: %d ',Spaß2());
druckenf ('fun2 2. Aufruf gibt zurück: %d ',Spaß2());

Rückkehr 0;
}


In Beispiel 1.c haben wir zwei Funktionen: Spaß1() und Spaß2() . In Spaß1() , deklarieren wir eine Variable (count) und initialisieren sie auf 0. Dann inkrementieren wir die count-Variable und geben den resultierenden Wert zurück. Verwenden von hauptsächlich() , wir nennen Spaß1() zweimal und jedes Mal wird ein Wert von 1 zurückgegeben, da die Zählvariable gelöscht wird, wenn der Aufruf an Spaß1() abgeschlossen. In Spaß2() Wir haben die Zählvariable als statische Variable deklariert. Daher bleibt sein Wert erhalten. Verwenden von hauptsächlich() , wir nennen Spaß2() zweimal: Beim ersten Mal wird der Wert 1 und beim zweiten Mal der Wert 2 zurückgegeben.



Statische globale Variablen

Eine statische globale Variable verhält sich wie andere globale Variablen, kann jedoch nicht von einem anderen C-Programm aus darauf zugegriffen werden.





Statische Funktionen

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

Initialisierung von statischen Variablen

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



//Beispiel2.c

#enthalten

inthauptsächlich()
{
statisch intich;

druckenf ('Wert von i: %d ',ich);

Rückkehr 0;
}


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

Es ist wichtig zu beachten, dass eine statische Variable mit einem konstanten Literal initialisiert werden muss; Wir können den Rückgabewert einer Funktion nicht verwenden, um eine statische Variable zu initialisieren.

//Beispiel3.c

#enthalten

intSpaß1()
{
Rückkehr 5;
}

inthauptsächlich()
{
statisch intich=Spaß1();
druckenf ('Wert von i: %d ',ich);
Rückkehr 0;
}


In Beispiel3.c versuchen wir, eine statische Variable zu initialisieren, indem wir den Rückgabewert von verwenden Spaß1() . Wie Sie jedoch sehen können, wird beim Kompilieren des Codes ein Fehler zurückgegeben.

Zusammenfassung

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

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

Weder auf eine globale statische Variable noch auf eine statische Funktion kann von einem anderen Programm als dem, in dem sie definiert wurde, zugegriffen werden.