Programare C

Static în programarea C

Static în programarea C
În acest tutorial, vom explica cuvântul cheie static aplicându-l în variabile și funcții. Static este un cuvânt cheie utilizat în programarea C și poate fi aplicat utilizând următoarea sintaxă:

static tip de date nume variabilă

Variabile locale statice

Când o variabilă dintr-o funcție este statică, variabila își păstrează valoarea între apelurile de funcție.

// Exemplul 1.c
#include
int fun1 ()

int count = 0;
conta ++;
număr de returnări;

int fun2 ()

număr int static = 0;
conta ++;
număr de returnări;

int main ()

printf ("fun1 primul apel returnează:% d \ n", fun1 ());
printf ("fun1 al doilea apel returnează:% d \ n \ n", fun1 ());
printf ("fun2 primul apel returnează:% d \ n", fun2 ());
printf ("fun2 al doilea apel returnează:% d \ n", fun2 ());
retur 0;


În exemplul 1.c, avem două funcții: fun1 () și fun2 (). În fun1 (), declarăm o variabilă (număr) și o inițializăm la 0. Apoi, incrementăm variabila de numărare și returnăm valoarea rezultată. Folosind principal(), noi sunam fun1 () de două ori și de fiecare dată, se returnează o valoare 1, deoarece variabila de numărare este ștearsă la apelul către fun1 () este gata. În fun2 () am declarat variabila count ca variabilă statică. Prin urmare, valoarea sa este păstrată. Folosind principal(), noi sunam fun2 () de două ori: prima dată, se returnează o valoare 1 și a doua oară, se returnează o valoare 2.

Variabile globale statice

O variabilă globală statică se comportă în același mod ca alte variabile globale, dar nu poate fi accesată dintr-un alt program C.

Funcții statice

În C, funcțiile sunt globale în mod implicit. Cu toate acestea, dacă declarăm o funcție statică, atunci funcția este locală și nu poate fi accesată din alt program C.

Inițializarea variabilelor statice

Dacă o variabilă statică nu este inițializată în mod explicit, atunci este inițializată ca 0.

// Exemplul 2.c
#include
int main ()

static int i;
printf ("Valoarea lui i:% d \ n", i);
retur 0;


În Exemplul 2.c, am declarat o variabilă statică i care nu este inițializată. Cu toate acestea, deoarece variabila este statică, este inițializată automat la 0.

Este important să rețineți că o variabilă statică trebuie inițiată de un literal constant; nu putem folosi valoarea returnată a unei funcții pentru a inițializa o variabilă statică.

// Exemplul 3.c
#include
int fun1 ()

retur 5;

int main ()

static int i = fun1 ();
printf ("Valoarea lui i:% d \ n", i);
retur 0;


În Exemplul 3.c, încercăm să inițializăm o variabilă statică utilizând valoarea returnată a fun1 (). Cu toate acestea, după cum puteți vedea, o eroare este returnată atunci când codul este compilat.

rezumat

Durata de viață a unei variabile statice și durata de viață a programului sunt egale.

Dacă o variabilă statică nu este inițializată, atunci va lua o valoare implicită de 0.

Nici o variabilă statică globală, nici o funcție statică nu sunt accesibile dintr-un alt program decât cel în care a fost definită.

Cum se arată FPS Counter în jocurile Linux
Jocurile cu Linux au primit un impuls major când Valve a anunțat suportul Linux pentru clientul Steam și jocurile acestora în 2012. De atunci, multe j...
How to download and Play Sid Meier's Civilization VI on Linux
Introduction to the game Civilization 6 is a modern take on the classic concept introduced in the series of the Age of Empires games. The idea was fai...
How to Install and Play Doom on Linux
Introduction to Doom The Doom Series originated in the 90s after the release of the original Doom. It was an instant hit and from that time onwards th...