Staattinen C -ohjelmoinnissa

Static C Programming



Tässä opetusohjelmassa selitämme staattisen avainsanan soveltamalla sitä muuttujiin ja toimintoihin. Staattinen on C -ohjelmoinnissa käytetty avainsana, ja sitä voidaan käyttää seuraavan syntaksin avulla:

staattinen {tietotyyppi} {muuttujan nimi}







Staattiset paikalliset muuttujat

Kun funktion muuttuja on staattinen, muuttuja säilyttää arvon funktiokutsujen välillä.



//Esimerkki1.c

#sisältää

inthauskaa 1()
{

intKreivi=0;
Kreivi++;
palataKreivi;
}

inthauskaa 2()
{
staattinen intKreivi=0;
Kreivi++;
palataKreivi;
}

inttärkein()
{
printf ('fun1 Ensimmäinen puhelu palaa: %d n'',hauskaa 1());
printf ('fun1 Toinen puhelu palaa: %d n n'',hauskaa 1());

printf ('fun2 Ensimmäinen puhelu palaa: %d n'',hauskaa 2());
printf ('fun2 Toinen puhelu palaa: %d n'',hauskaa 2());

palata 0;
}


Esimerkissä 1.c meillä on kaksi toimintoa: hauska1 () ja hauskaa2 () . Sisään hauska1 () , ilmoitamme yhden muuttujan (count) ja alustamme sen arvoksi 0. Sitten kasvatamme lukumuuttujaa ja palautamme tuloksena olevan arvon. Käyttämällä pää () , Kutsumme hauska1 () kahdesti ja joka kerta, arvo 1 palautetaan, koska laskentamuuttuja tyhjennetään, kun puhelu soitetaan hauska1 () on suoritettu. Sisään hauskaa2 () julistimme count -muuttujan staattiseksi muuttujaksi. Siksi sen arvo säilyy. Käyttämällä pää () , Kutsumme hauskaa2 () kahdesti: ensimmäisen kerran arvo 1 palautetaan ja toisen kerran arvo 2.



Staattiset globaalimuuttujat

Staattinen globaali muuttuja käyttäytyy samalla tavalla kuin muut globaalimuuttujat, mutta sitä ei voi käyttää toisesta C -ohjelmasta.





Staattiset toiminnot

C: ssä toiminnot ovat oletuksena maailmanlaajuisia. Jos kuitenkin julistamme staattisen funktion, funktio on paikallinen eikä sitä voi käyttää toisesta C -ohjelmasta.

Staattisten muuttujien alustaminen

Jos staattista muuttujaa ei ole alustettu nimenomaisesti, se alustetaan 0: ksi.



//Esimerkki2.c

#sisältää

inttärkein()
{
staattinen inti;

printf ('I: n arvo: %d n'',i);

palata 0;
}


Esimerkissä2.c julistimme staattisen muuttujan i, jota ei ole alustettu. Koska muuttuja on kuitenkin staattinen, se alustetaan automaattisesti arvoon 0.

On tärkeää huomata, että staattinen muuttuja on alustettava vakio -kirjaimella; Emme voi käyttää funktion palautusarvoa alustamaan staattinen muuttuja.

//Esimerkki3.c

#sisältää

inthauskaa 1()
{
palata 5;
}

inttärkein()
{
staattinen inti=hauskaa 1();
printf ('I: n arvo: %d n'',i);
palata 0;
}


Esimerkissä3.c yritämme alustaa staattisen muuttujan käyttämällä palautusarvoa hauska1 () . Kuitenkin, kuten huomaat, virhe palautetaan koodia käännettäessä.

Yhteenveto

Staattisen muuttujan käyttöikä ja ohjelman kesto ovat yhtä suuret.

Jos staattista muuttujaa ei alusteta, se ottaa oletusarvon 0.

Globaalista staattista muuttujaa tai staattista funktiota ei voi käyttää muusta ohjelmasta kuin siitä, jossa se on määritelty.