Hvordan å erklære en statisk variabel i C

Statiske variabler er en nyttig del av C. De gir deg fleksibilitet i å lage funksjoner som returnerer mer komplekse data, men de kan være vanskelig å forstå og bruke effektivt.

Bruksanvisning

Erklære en statisk variabel

1 Vet at statiske variabler er alltid deklarert inne i en C-funksjon, men i motsetning til andre variabler, deres verdier fortsette å eksistere og beholdes, selv etter funksjons utganger.

2 Erklære en statisk variabel ved å bruke samme syntaks som du ville gjort for å erklære en normal lokal variabel, men foran erklæringen med ordet statisk, slik:

static int sum = 0;

3 Forvent initialisering å skje bare første gang du kaller funksjonen. Påfølgende ganger, vil den forrige verdien fortsatt være der. Hvis du utelater initialisering, vil det automatisk bli initialisert til 0.

4 Bruke variabelen i funksjonen som du gjør med andre.

5 Husk at, som en hvilken som helst annen lokal variabel, en statisk variabel kan ikke bli henvist ut av funksjon. Men hvis du passerer en peker til den, pekeren kan dereferenced vellykket, siden variabelen eksisterer fortsatt.

Vit når du skal bruke statiske variabler

6 Bruk en statisk variabel for å tillate funksjon å ha sin egen hukommelse som bærer over fra en samtale til en annen. For eksempel kan en funksjon som får og analyserer neste linje på en fil må internt holde styr på hvor den er i filen.

7 Bruke en statisk variabel som en måte for å tilveiebringe en del av minnet for lagring av et resultat. For eksempel kan en funksjon for å sette sammen strenger bruke en statisk variabel der du vil lagre resultatet av sammensetning og returnere en peker til den. Den statiske variable minne er konstant tilgjengelig, men vil automatisk bli frigjort når programmet er slutt, akkurat som alle andre lokal variabel.

8 Bruk statiske variabler for en løpende sum eller lignende opphopning. Tenk på dette eksemplet:

int running_total (int num) {
static int sum = 0;
sum + = num;
tilbake sum;
} Hver gang du ringer denne funksjonen, holder det og returnerer en løpende summen av alle tallene gått inn i den.

Hint

  • Bruk statiske variabler for å unngå å måtte passere en variabel inn i C-funksjonen for ingen annen grunn enn å oppdatere og vedlikeholde sin verdi.
  • Vær forsiktig med bivirkninger når du returnerer en peker til den statiske variable. Hvis du kaller funksjonen flere ganger, er resultatet av hver skrevet i løpet av neste.
  • Det er farlig å bruke en peker til den statisk variabel som en parameter for funksjonen. For eksempel i en funksjon for å sette sammen strenger, ikke prøv å sette sammen noe til resultatet av en tidligere sammensetning!