C Programmering

Statisk i C-programmering

Statisk i C-programmering
I denne opplæringen vil vi forklare det statiske nøkkelordet 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, bevarer variabelen verdien mellom funksjonsanrop.

// Eksempel1.c
#inkludere
int fun1 ()

int-antall = 0;
telle ++;
retur teller;

int fun2 ()

statisk intall = 0;
telle ++;
returantall;

int main ()

printf ("fun1 første samtale returnerer:% d \ n", fun1 ());
printf ("fun1 2. samtale returnerer:% d \ n \ n", fun1 ());
printf ("fun2 første samtale returnerer:% d \ n", fun2 ());
printf ("fun2 2. samtale returnerer:% d \ n", fun2 ());
retur 0;


I eksempel 1.c, vi har to funksjoner: moro1 () og fun2 (). I moro1 (), vi erklærer en variabel (count) 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 fun2 () vi erklærte tellevariabelen som en statisk variabel. Derfor bevares verdien. Ved hjelp av hoved(), vi ringer fun2 () 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 er ikke tilgjengelig fra et annet C-program.

Statiske funksjoner

I C er funksjoner 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
int main ()

statisk int i;
printf ("Verdi av i:% d \ n", i);
retur 0;


I eksempel 2.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 bokstavelig; vi kan ikke bruke returfunksjonen til en funksjon for å initialisere en statisk variabel.

// Eksempel3.c
#inkludere
int fun1 ()

retur 5;

int main ()

statisk int i = fun1 ();
printf ("Verdi av i:% d \ n", i);
retur 0;


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

Sammendrag

Levetiden til en statisk variabel og levetiden til programmet er like.

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

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

Hvordan installere og spille Doom på Linux
Introduksjon til Doom Doom-serien stammer fra 90-tallet etter utgivelsen av den originale Doom. Det ble en øyeblikkelig suksess, og fra den tiden og u...
Vulkan for Linux-brukere
Med hver nye generasjon grafikkort ser vi spillutviklere skyve grensene for grafisk troskap og komme et skritt nærmere fotorealisme. Men til tross for...
OpenTTD vs Simutrans
Å lage din egen transportsimulering kan være morsom, avslappende og ekstremt fristende. Derfor må du sørge for at du prøver så mange spill som mulig f...