Statikus a C programozásban

Static C Programming



Ebben az oktatóanyagban elmagyarázzuk a statikus kulcsszót, alkalmazva azt változókban és függvényekben. A statikus a C programozásban használt kulcsszó, és a következő szintaxissal alkalmazható:

statikus {adattípus} {változó neve}







Statikus helyi változók

Ha egy függvény változója statikus, akkor a változó megőrzi értékét a függvényhívások között.



//Példa1.c

#befoglalni

intszórakoztató1()
{

intszámol=0;
számol++;
Visszatérésszámol;
}

intszórakoztató2()
{
statikus intszámol=0;
számol++;
Visszatérésszámol;
}

intfő-()
{
printf ('fun1 Az első hívás visszatér: %d n',szórakoztató1());
printf ('fun1 2. hívás visszatér: %d n n',szórakoztató1());

printf ('fun2 Az első hívás visszatér: %d n',szórakoztató2());
printf ('fun2 2. hívás visszatér: %d n',szórakoztató2());

Visszatérés 0;
}


Az 1.c példában két függvényünk van: szórakoztató1 () és szórakoztató2 () . Ban ben szórakoztató1 () , deklarálunk egy változót (count), és inicializáljuk 0 -ra. Ezután növeljük a count változót, és visszaadjuk a kapott értéket. Használata fő() , hívjuk szórakoztató1 () kétszer, és minden alkalommal 1 -es érték kerül visszaadásra, mert a számláló változó törlődik a híváskor szórakoztató1 () kész. Ban ben szórakoztató2 () a count változót statikus változónak nyilvánítottuk. Ezért értéke megmarad. Használata fő() , hívjuk szórakoztató2 () kétszer: az első alkalommal az 1 -es, a második alkalommal a 2 -es érték kerül visszaadásra.



Statikus globális változók

A statikus globális változó ugyanúgy viselkedik, mint a többi globális változó, de más C programból nem érhető el.





Statikus függvények

A C -ben a funkciók alapértelmezés szerint globálisak. Ha azonban statikus függvényt deklarálunk, akkor a függvény helyi, és nem érhető el egy másik C programból.

Statikus változók inicializálása

Ha egy statikus változót nem explicit módon inicializálnak, akkor 0 -val inicializálják.



//Példa2.c

#befoglalni

intfő-()
{
statikus intén;

printf ('I értéke: %d n',én);

Visszatérés 0;
}


A 2.c példában egy statikus i változót deklaráltunk, amely nincs inicializálva. Mivel azonban a változó statikus, automatikusan inicializálja 0 -ra.

Fontos megjegyezni, hogy egy statikus változót állandó literálral kell inicializálni; nem használhatjuk a függvény visszatérési értékét egy statikus változó inicializálására.

//Példa3.c

#befoglalni

intszórakoztató1()
{
Visszatérés 5;
}

intfő-()
{
statikus intén=szórakoztató1();
printf ('I értéke: %d n',én);
Visszatérés 0;
}


A 3.c példában egy statikus változót próbálunk inicializálni a visszatérési érték használatával szórakoztató1 () . Azonban, mint látható, a kód fordításakor hibaüzenet jelenik meg.

Összefoglaló

A statikus változó élettartama és a program élettartama egyenlő.

Ha egy statikus változót nem inicializál, akkor az alapértelmezett 0 értéket vesz fel.

Sem egy globális statikus változó, sem egy statikus függvény nem érhető el egy olyan programtól, amelyik nem definiálta.