Statiski C programmēšanā

Static C Programming



Šajā apmācībā mēs izskaidrosim statisko atslēgvārdu, piemērojot to mainīgajiem un funkcijām. Statisks ir atslēgvārds, ko izmanto C programmēšanā, un to var lietot, izmantojot šādu sintaksi:

statisks {datu tips} {mainīgā nosaukums}







Statiski vietējie mainīgie

Ja mainīgais funkcijā ir statisks, mainīgais saglabā vērtību starp funkciju izsaukumiem.



//Piemērs1.c

#iekļaut

intjautri 1()
{

intsaskaitīt=0;
saskaitīt++;
atgrieztiessaskaitīt;
}

intjautri2()
{
statisks intsaskaitīt=0;
saskaitīt++;
atgrieztiessaskaitīt;
}

intgalvenais()
{
printf ('fun1 1. zvans atgriežas: %d n',jautri 1());
printf ('fun1 Otrais zvans atgriežas: %d n n',jautri 1());

printf ('fun2 1. zvans atgriežas: %d n',jautri2());
printf ('fun2 Otrais zvans atgriežas: %d n',jautri2());

atgriezties 0;
}


1.c piemērā mums ir divas funkcijas: jautri1 () un jautri2 () . In jautri1 () , mēs deklarējam vienu mainīgo (skaitu) un inicializējam to līdz 0. Tad mēs palielinām skaitļa mainīgo un atgriežam iegūto vērtību. Izmantojot galvenais () , Mēs saucam jautri1 () divreiz un katru reizi tiek atgriezta vērtība 1, jo, mainoties skaitam, tiek mainīts mainīgais jautri1 () ir pabeigta. In jautri2 () mainīgo skaitu mēs deklarējām kā statisku mainīgo. Tāpēc tā vērtība tiek saglabāta. Izmantojot galvenais () , Mēs saucam jautri2 () divas reizes: pirmajā reizē tiek atgriezta vērtība 1, bet otro reizi tiek atgriezta vērtība 2.



Statiski globālie mainīgie

Statisks globālais mainīgais darbojas tāpat kā citi globālie mainīgie, taču tam nevar piekļūt no citas C programmas.





Statiskās funkcijas

C pēc noklusējuma funkcijas ir globālas. Tomēr, ja mēs deklarējam statisku funkciju, tad šī funkcija ir lokāla un tai nevar piekļūt no citas C programmas.

Statisko mainīgo inicializēšana

Ja statisks mainīgais nav skaidri inicializēts, tas tiek inicializēts kā 0.



//Piemērs2.c

#iekļaut

intgalvenais()
{
statisks inti;

printf ('I vērtība: %d n',i);

atgriezties 0;
}


Piemērā2.c mēs deklarējām statisku mainīgo i, kas nav inicializēts. Tomēr, tā kā mainīgais ir statisks, tas tiek automātiski inicializēts uz 0.

Ir svarīgi atzīmēt, ka statisks mainīgais jāinicializē ar nemainīgu burtu; mēs nevaram izmantot funkcijas atgriešanas vērtību, lai inicializētu statisku mainīgo.

//Piemērs3.c

#iekļaut

intjautri 1()
{
atgriezties 5;
}

intgalvenais()
{
statisks inti=jautri 1();
printf ('I vērtība: %d n',i);
atgriezties 0;
}


Piemērā3.c mēs mēģinām inicializēt statisku mainīgo, izmantojot atgriežamo vērtību jautri1 () . Tomēr, kā redzat, koda apkopošanas laikā tiek atgriezta kļūda.

Kopsavilkums

Statiskā mainīgā kalpošanas laiks un programmas kalpošanas laiks ir vienādi.

Ja statiskais mainīgais netiek inicializēts, tas iegūs noklusējuma vērtību 0.

Ne globālajam statiskajam mainīgajam, ne statiskajai funkcijai nav pieejama cita programma, nevis tā, kurā tā tika definēta.