C Programmering

Statisk i C-programmering

Statisk i C-programmering
I denna handledning kommer vi att förklara det statiska nyckelordet genom att använda det i variabler och funktioner. Statisk är ett nyckelord som används i C-programmering, och det kan användas med följande syntax:

statisk datatyp variabelnamn

Statiska lokala variabler

När en variabel i en funktion är statisk, bevarar variabeln sitt värde mellan funktionssamtal.

// Exempel1.c
#omfatta
int fun1 ()

intantal = 0;
räkna ++;
returräkning;

int fun2 ()

statisk inträde = 0;
räkna ++;
returräkning;

int main ()

printf ("fun1 första samtalet returnerar:% d \ n", fun1 ());
printf ("fun1 andra samtalet returnerar:% d \ n \ n", fun1 ());
printf ("fun2 första samtalet returnerar:% d \ n", fun2 ());
printf ("fun2 andra samtalet returnerar:% d \ n", fun2 ());
returnera 0;


I exempel 1.c, vi har två funktioner: fun1 () och fun2 (). I fun1 (), vi deklarerar en variabel (count) och initialiserar den till 0. Sedan ökar vi räknevariabeln och returnerar det resulterande värdet. Använder sig av huvud (), vi ringer fun1 () två gånger, och varje gång returneras värdet 1 eftersom räknevariabeln rensas när samtalet till fun1 () är klart. I fun2 () vi förklarade räkningsvariabeln som en statisk variabel. Därför bevaras dess värde. Använder sig av huvud (), vi ringer fun2 () två gånger: första gången returneras värdet 1 och andra gången returneras värdet 2.

Statiska globala variabler

En statisk global variabel beter sig på samma sätt som andra globala variabler, men den kan inte nås från ett annat C-program.

Statiska funktioner

I C är funktioner globala som standard. Men om vi deklarerar en statisk funktion är funktionen lokal och kan inte nås från ett annat C-program.

Initialisering av statiska variabler

Om en statisk variabel inte initialiseras uttryckligen initialiseras den som 0.

// Exempel2.c
#omfatta
int main ()

statisk int i;
printf ("Värde på i:% d \ n", i);
returnera 0;


I exempel 2.c, deklarerade vi en statisk variabel i som inte är initialiserad. Men eftersom variabeln är statisk initialiseras den automatiskt till 0.

Det är viktigt att notera att en statisk variabel måste initialiseras med en konstant bokstav. vi kan inte använda en funktions returvärde för att initialisera en statisk variabel.

// Exempel3.c
#omfatta
int fun1 ()

retur 5;

int main ()

statisk int i = fun1 ();
printf ("Värde på i:% d \ n", i);
returnera 0;


I exempel 3.c, vi försöker att initialisera en statisk variabel med hjälp av returvärdet på fun1 (). Som du kan se returneras dock ett fel när koden kompileras.

Sammanfattning

Livslängden för en statisk variabel och programmets livslängd är lika.

Om en statisk variabel inte initialiseras tar den ett standardvärde på 0.

Varken en global statisk variabel eller en statisk funktion är tillgänglig från ett annat program än det i vilket det definierades.

Bästa spel att spela med handspårning
Oculus Quest introducerade nyligen den fantastiska idén om handspårning utan kontroller. Med ett ständigt ökande antal spel och aktiviteter som utför ...
Hur man visar OSD-överlägg i helskärms Linux-appar och -spel
Att spela helskärmsspel eller använda appar i distraktionsfritt helskärmsläge kan avskärma dig från relevant systeminformation som syns i en panel ell...
Topp 5 spelinspelningskort
Vi har alla sett och älskat streaming av spel på YouTube. PewDiePie, Jakesepticye och Markiplier är bara några av de bästa spelarna som har tjänat mil...