C Ohjelmointi

Staattinen C-ohjelmoinnissa

Staattinen C-ohjelmoinnissa
Tässä opetusohjelmassa selitämme staattisen avainsanan soveltamalla sitä muuttujiin ja funktioihin. Staattinen on C-ohjelmoinnissa käytetty avainsana, jota voidaan käyttää seuraavalla syntaksilla:

staattinen tietotyyppi muuttujan nimi

Staattiset paikalliset muuttujat

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

// Esimerkki 1.c
#sisältää
int hauskaa1 ()

int-määrä = 0;
laskea ++;
paluumäärä;

int hauska2 ()

staattinen int-määrä = 0;
laskea ++;
paluumäärä;

int main ()

printf ("fun1: n ensimmäinen puhelu palauttaa:% d \ n", fun1 ());
printf ("fun1 2. puhelu palauttaa:% d \ n \ n", fun1 ());
printf ("fun2 1. puhelu palauttaa:% d \ n", fun2 ());
printf ("fun2 2. puhelu palauttaa:% d \ n", fun2 ());
paluu 0;


Esimerkissä 1.c, meillä on kaksi toimintoa: hauskaa1 () ja hauskaa2 (). Sisään hauskaa1 (), ilmoitetaan yksi muuttuja (määrä) ja alustetaan se arvoon 0. Sitten kasvatamme laskemuuttujaa ja palautamme tuloksena olevan arvon. Käyttämällä main (), Kutsumme hauskaa1 () kahdesti, ja joka kerta, arvo 1 palautetaan, koska laskentamuuttuja tyhjennetään, kun soitetaan hauskaa1 () on suoritettu. Sisään hauskaa2 () ilmoitimme laskevamuuttujan staattiseksi muuttujaksi. Siksi sen arvo säilyy. Käyttämällä main (), Kutsumme hauskaa2 () kahdesti: ensimmäisellä kerralla arvo 1 palautetaan ja toisen kerran arvo 2 palautetaan.

Staattiset globaalit muuttujat

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

Staattiset toiminnot

C: ssä funktiot ovat oletusarvoisesti globaaleja. Jos kuitenkin ilmoitamme staattisen funktion, toiminto on paikallinen eikä siihen pääse toisesta C-ohjelmasta.

Staattisten muuttujien alustaminen

Jos staattista muuttujaa ei alusteta nimenomaisesti, se alustetaan arvona 0.

// Esimerkki 2.c
#sisältää
int main ()

staattinen int i;
printf ("i: n arvo:% d \ n", i);
paluu 0;


Esimerkissä 2.c, ilmoitimme staattisen muuttujan i, jota ei alusteta. Koska muuttuja on staattinen, se alustetaan automaattisesti arvoon 0.

On tärkeää huomata, että staattinen muuttuja on aloitettava vakiolitraalilla; emme voi käyttää funktion palautusarvoa staattisen muuttujan alustamiseen.

// Esimerkki 3.c
#sisältää
int hauskaa1 ()

paluu 5;

int main ()

staattinen int i = fun1 ();
printf ("i: n arvo:% d \ n", i);
paluu 0;


Esimerkissä 3.c, yritämme alustaa staattisen muuttujan käyttämällä paluuarvoa hauskaa1 (). Kuten näette, virhe palautetaan koodia käännettäessä.

Yhteenveto

Staattisen muuttujan ja ohjelman elinikä ovat samat.

Jos staattista muuttujaa ei alusteta, se saa oletusarvon 0.

Globaalia staattista muuttujaa eikä staattista toimintoa ei voi käyttää muusta ohjelmasta kuin siitä, jossa se määritettiin.

Open Source Ports of Commercial Game Engines
Free, open source and cross-platform game engine recreations can be used to play old as well as some of the fairly recent game titles. This article wi...
Parhaat komentorivipelit Linuxille
Komentorivi ei ole vain suurin liittolainen Linuxia käytettäessä - se voi olla myös viihteen lähde, koska voit käyttää sitä pelaamaan monia hauskoja p...
Parhaat Linux-peliohjaimen kartoitussovellukset
Jos haluat pelata pelejä Linuxissa peliohjaimella tyypillisen näppäimistön ja hiiren syöttöjärjestelmän sijaan, on sinulle hyödyllisiä sovelluksia. Mo...