Statiska variabler är en användbar del av C. De ger dig flexibilitet att göra funktioner som returnerar mer komplexa uppgifter , men de kan vara svårt att förstå och använda effektivt . Instruktioner
Deklarera en statisk variabel
1
Vet att statiska variabler alltid deklareras inuti en C-funktion , men till skillnad från andra variabler , deras värden fortsätter att existera och bevaras , även efter att funktionen avslutas .
2
deklarera en statisk variabel med samma syntax som du skulle förklara en normal lokal variabel , men föregår förklaringen med ordet static , som den här :
static int sum = 0 ;
3 Räkna initiering ske endast första gången du anropar funktionen . Efterföljande gånger , kommer det tidigare värdet vara kvar . Om du utelämnar initiering , kommer det automatiskt att initieras till 0 .
4
använda variabeln i funktionen som du skulle någon annan . Kom ihåg att , som
5
någon annan lokal variabel , kan en statisk variabel inte hänskjutas till utanför funktionen . Men om du passerar en pekare till det , kan pekaren ska dereferenced framgångsrikt , eftersom variabeln fortfarande existerar . Veta när man använder statiska variabler
6
Användning
en statisk variabel så att din funktion att ha sitt eget minne som bär över från ett samtal till ett annat . Till exempel kan en funktion som hämtar och tolkar nästa rad i en fil behöver internt hålla reda på var det finns i filen .
7
Använd en statisk variabel som ett sätt att ge en bit minne för lagring av ett resultat . Till exempel kan en funktion för att sammanfoga strängar använder en statisk variabel som att lagra resultatet av sammanlänkningen och returnera en pekare till det . Den statiska variabeln minne är ständigt tillgängliga , men kommer automatiskt att frigöras när programmet avslutas , precis som alla andra lokal variabel .
8
Använd statiska variabler för en löpande summa eller liknande ackumulation . Tänk på detta exempel :
int running_total ( int num ) { static int sum = 0; summa + = num , avkastning summa ; } Varje gång du kallar denna funktion , håller den och returnerar en löpande summa av alla tal passerade in i det . Addera