Statisk i C -programmering

Static C Programming



I denne opplæringen forklarer vi det statiske søkeordet ved å bruke det i variabler og funksjoner. Statisk er et nøkkelord som brukes i C -programmering, og det kan brukes ved å bruke følgende syntaks:

statisk {datatype} {variabelnavn}







Statiske lokale variabler

Når en variabel i en funksjon er statisk, beholder variabelen verdien mellom funksjonskall.



//Eksempel1.c

#inkludere

intmoro1()
{

inttelle=0;
telle++;
komme tilbaketelle;
}

intmoro2()
{
statisk inttelle=0;
telle++;
komme tilbaketelle;
}

inthoved-()
{
printf ('fun1 1. samtale returnerer: %d n',moro1());
printf ('fun1 2. samtale returnerer: %d n n',moro1());

printf ('fun2 1. samtale returnerer: %d n',moro2());
printf ('fun2 2. samtale returnerer: %d n',moro2());

komme tilbake 0;
}


I eksempel 1.c har vi to funksjoner: moro1 () og moro2 () . I moro1 () , deklarerer vi én variabel (telling) og initialiserer den til 0. Deretter øker vi tellevariabelen og returnerer den resulterende verdien. Ved hjelp av hoved() , vi ringer moro1 () to ganger, og hver gang returneres verdien 1 fordi tellevariabelen slettes når anropet til moro1 () det er ferdig. I moro2 () Vi erklærte tellevariabelen som en statisk variabel. Derfor bevares verdien. Ved hjelp av hoved() , vi ringer moro2 () to ganger: første gang returneres verdien 1, og den andre gangen returneres verdien 2.



Statiske globale variabler

En statisk global variabel oppfører seg på samme måte som andre globale variabler, men den kan ikke nås fra et annet C -program.





Statiske funksjoner

I C er funksjonene globale som standard. Men hvis vi erklærer en statisk funksjon, er funksjonen lokal og kan ikke nås fra et annet C -program.

Initialisering av statiske variabler

Hvis en statisk variabel ikke initialiseres eksplisitt, initialiseres den som 0.



//Eksempel2.c

#inkludere

inthoved-()
{
statisk intJeg;

printf ('Verdi av i: %d n',Jeg);

komme tilbake 0;
}


I eksempel2.c erklærte vi en statisk variabel i som ikke er initialisert. Men fordi variabelen er statisk, initialiseres den automatisk til 0.

Det er viktig å merke seg at en statisk variabel må initialiseres med en konstant bokstav; vi kan ikke bruke en funksjons returverdi til å initialisere en statisk variabel.

//Eksempel3.c

#inkludere

intmoro1()
{
komme tilbake 5;
}

inthoved-()
{
statisk intJeg=moro1();
printf ('Verdi av i: %d n',Jeg);
komme tilbake 0;
}


I eksempel3.c prøver vi å initialisere en statisk variabel ved å bruke returverdien på moro1 () . Som du kan se, returneres imidlertid en feil når koden kompileres.

Sammendrag

Levetiden til en statisk variabel og programmets levetid er lik.

Hvis en statisk variabel ikke initialiseres, vil den ha en standardverdi på 0.

Verken en global statisk variabel eller en statisk funksjon er tilgjengelig fra et annet program enn det der det ble definert.