C Programmering

Statisk i C-programmering

Statisk i C-programmering
I denne vejledning forklarer vi det statiske nøgleord ved at anvende det i variabler og funktioner. Statisk er et nøgleord, der bruges i C-programmering, og det kan anvendes ved hjælp af følgende syntaks:

statisk datatype variabelnavn

Statiske lokale variabler

Når en variabel i en funktion er statisk, bevarer variablen sin værdi mellem funktionsopkald.

// Eksempel1.c
#omfatte
int fun1 ()

int-antal = 0;
tælle ++;
returantal

int fun2 ()

statisk int-antal = 0;
tælle ++;
returantal

int main ()

printf ("fun1 1. opkald returnerer:% d \ n", fun1 ());
printf ("fun1 2. opkald returnerer:% d \ n \ n", fun1 ());
printf ("fun2 1. opkald returnerer:% d \ n", fun2 ());
printf ("fun2 2. opkald returnerer:% d \ n", fun2 ());
returnere 0;


I eksempel 1.c, vi har to funktioner: sjov1 () og fun2 (). I sjov1 (), vi erklærer en variabel (antal) og initialiserer den til 0. Derefter øges tællingsvariablen og returnerer den resulterende værdi. Ved brug af hoved (), vi ringer sjov1 () to gange, og hver gang returneres en værdi på 1, fordi tællingsvariablen ryddes, når opkaldet til sjov1 () er afsluttet. I fun2 () vi erklærede tællingsvariablen som en statisk variabel. Derfor bevares dens værdi. Ved brug af hoved (), vi ringer fun2 () to gange: første gang returneres en værdi på 1, og anden gang returneres en værdi på 2.

Statiske globale variabler

En statisk global variabel opfører sig på samme måde som andre globale variabler, men den kan ikke tilgås fra et andet C-program.

Statiske funktioner

I C er funktioner som standard globale. Men hvis vi erklærer en statisk funktion, er funktionen lokal og kan ikke tilgås fra et andet C-program.

Initialisering af statiske variabler

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

// Eksempel2.c
#omfatte
int main ()

statisk int i;
printf ("Værdi af i:% d \ n", i);
returnere 0;


I eksempel 2.c, erklærede vi en statisk variabel i, der ikke er initialiseret. Men fordi variablen er statisk initialiseres den automatisk til 0.

Det er vigtigt at bemærke, at en statisk variabel skal initialiseres med en konstant bogstavelig; vi kan ikke bruge en funktions returværdi til at initialisere en statisk variabel.

// Eksempel3.c
#omfatte
int fun1 ()

retur 5;

int main ()

statisk int i = fun1 ();
printf ("Værdi af i:% d \ n", i);
returnere 0;


I eksempel 3.c, vi forsøger at initialisere en statisk variabel ved hjælp af returværdien af sjov1 (). Som du kan se, returneres en fejl, når koden kompileres.

Resumé

Levetiden for en statisk variabel og programmets levetid er ens.

Hvis en statisk variabel ikke initialiseres, får den en standardværdi på 0.

Hverken en global statisk variabel eller en statisk funktion er tilgængelig fra et andet program end det, hvori det blev defineret.

Mus Sådan ændres musemarkør og markørstørrelse, farve og skema på Windows 10
Sådan ændres musemarkør og markørstørrelse, farve og skema på Windows 10
Musemarkøren og markøren i Windows 10 er meget vigtige aspekter af operativsystemet. Dette kan også siges om andre operativsystemer, så i sandhed er d...
Gratis og open source-spilmotorer til udvikling af Linux-spil
Denne artikel dækker en liste over gratis og open source-spilmotorer, der kan bruges til at udvikle 2D- og 3D-spil på Linux. Der er mange sådanne spil...
Shadow of the Tomb Raider til Linux-vejledning
Shadow of the Tomb Raider er den tolvte tilføjelse til Tomb Raider-serien - en action-adventure-spilfranchise oprettet af Eidos Montreal. Spillet blev...