C programavimas

Statinis C programavime

Statinis C programavime
Šioje pamokoje paaiškinsime statinį raktinį žodį, pritaikydami jį kintamuosiuose ir funkcijose. „Static“ yra raktinis žodis, naudojamas programuojant C, ir jį galima pritaikyti naudojant šią sintaksę:

statinis duomenų tipas kintamasis vardas

Statiniai vietiniai kintamieji

Kai funkcijos kintamasis yra statiškas, kintamasis išsaugo savo vertę tarp funkcijos iškvietimų.

// 1 pavyzdys.c
# įtraukti
int fun1 ()

int skaičius = 0;
skaičius ++;
grąžinimo skaičius;

int fun2 ()

statinis int skaičius = 0;
skaičius ++;
grąžinimo skaičius;

int main ()

printf ("fun1 1 skambutis grąžina:% d \ n", fun1 ());
printf ("fun1 2-asis skambutis grąžina:% d \ n \ n", fun1 ());
printf ("fun2 1-asis skambutis grąžina:% d \ n", fun2 ());
printf ("fun2 2nd call return:% d \ n", fun2 ());
grąžinti 0;


1 pavyzdyje.c, mes turime dvi funkcijas: fun1 () ir fun2 (). Į fun1 (), deklaruojame vieną kintamąjį (skaičių) ir inicijuojame jį į 0. Tada mes padidinsime skaičiavimo kintamąjį ir grąžinsime gautą vertę. Naudojant pagrindinis (), mes skambiname fun1 () du kartus ir kiekvieną kartą grąžinama reikšmė 1, nes skaičiuojamasis kintamasis išvalomas, kai skambinama fun1 () yra baigtas. Į fun2 () paskelbėme skaičiaus kintamąjį kaip statinį kintamąjį. Todėl jo vertė yra išsaugota. Naudojant pagrindinis (), mes skambiname fun2 () du kartus: pirmą kartą grąžinama reikšmė 1, o antrą kartą - 2.

Statiniai visuotiniai kintamieji

Statinis visuotinis kintamasis elgiasi taip pat, kaip ir kiti visuotiniai kintamieji, tačiau jo negalima pasiekti iš kitos C programos.

Statinės funkcijos

C atveju pagal numatytuosius nustatymus funkcijos yra globalios. Tačiau jei deklaruojame statinę funkciją, tai funkcija yra vietinė ir prie jos negalima prisijungti iš kitos C programos.

Statinių kintamųjų inicijavimas

Jei statinis kintamasis nėra aiškiai inicializuotas, jis inicijuojamas kaip 0.

// 2 pavyzdys.c
# įtraukti
int main ()

statinis int i;
printf ("i reikšmė:% d \ n", i);
grąžinti 0;


2 pavyzdyje.c, mes paskelbėme statinį kintamąjį i, kuris nėra inicializuotas. Kadangi kintamasis yra statinis, jis automatiškai inicijuojamas iki 0.

Svarbu pažymėti, kad statinis kintamasis turi būti inicijuojamas pastoviuoju literalu; negalime naudoti funkcijos grąžinimo vertės, kad inicializuotume statinį kintamąjį.

// 3 pavyzdys.c
# įtraukti
int fun1 ()

grįžti 5;

int main ()

statinis int i = fun1 ();
printf ("i reikšmė:% d \ n", i);
grąžinti 0;


3 pavyzdyje.c, mes bandome inicijuoti statinį kintamąjį naudodami grąžinimo vertę fun1 (). Tačiau, kaip matote, kompiliuojant kodą pateikiama klaida.

Santrauka

Statinio kintamojo ir programos gyvavimo laikas yra vienodi.

Jei statinis kintamasis nėra inicializuotas, jis įgaus numatytąją reikšmę 0.

Nei pasaulinio statinio kintamojo, nei statinės funkcijos negalima pasiekti iš kitos programos, nei ta, kurioje jis buvo apibrėžtas.

Kaip įdiegti „League of Legends“ „Ubuntu 14“.04
Jei esate „League of Legends“ gerbėjas, tai jums yra galimybė išbandyti „League of Legends“. Atminkite, kad LOL palaikoma „PlayOnLinux“, jei esate „Li...
Įdiekite naujausią „OpenRA“ strategijos žaidimą „Ubuntu Linux“
„OpenRA“ yra „Free / Free Real Time Strategy“ žaidimų variklis, atkuriantis ankstyvuosius „Westwood“ žaidimus, tokius kaip klasikinis „Command & Conqu...
Įdiekite naujausią „Dolecin Emulator“, skirtą „Gamecube“ ir „Wii“, sistemoje „Linux“
„Delfinų emuliatorius“ leidžia žaisti pasirinktus „Gamecube“ ir „Wii“ žaidimus „Linux“ asmeniniuose kompiuteriuose (PC). „Dolphin Emulator“ yra laisv...