logo

Staattinen C:ssä

Static on C-ohjelmointikielessä käytetty avainsana. Sitä voidaan käyttää sekä muuttujien että funktioiden kanssa, eli voimme ilmoittaa myös staattisen muuttujan ja staattisen funktion. Tavallinen muuttuja on rajoitettu laajuuteen, jossa se on määritelty, kun taas staattisen muuttujan laajuus on koko ohjelman laajuus.

merkkijonojen ketjutus

Staattista avainsanaa voidaan käyttää seuraavissa tilanteissa:

    Staattinen globaali muuttuja
    Kun globaali muuttuja ilmoitetaan staattisella avainsanalla, se tunnetaan staattisena globaalina muuttujana. Se ilmoitetaan ohjelman yläosassa, ja sen näkyvyys on koko ohjelman ajan.Staattinen toiminto
    Kun funktio on ilmoitettu staattisella avainsanalla, joka tunnetaan staattisena funktiona. Sen käyttöikä on koko ohjelman ajan.Staattinen paikallinen muuttuja
    Kun paikallinen muuttuja ilmoitetaan staattisella avainsanalla, sitä kutsutaan staattiseksi paikalliseksi muuttujaksi. Staattisen paikallismuuttujan muisti on voimassa koko ohjelman ajan, mutta muuttujan näkyvyysalue on sama kuin automaattisten paikallismuuttujien. Kuitenkin, kun funktio muuttaa staattista paikallismuuttujaa ensimmäisen funktiokutsun aikana, tämä muokattu arvo on käytettävissä myös seuraavassa funktiokutsussa.Staattiset jäsenmuuttujat
    Kun jäsenmuuttujat on ilmoitettu luokassa staattisella avainsanalla, sitä kutsutaan staattisiksi jäsenmuuttujiksi. Niitä voivat käyttää kaikki luokan ilmentymät, eivät tietyn esiintymän kanssa.Staattinen menetelmä
    Staattisella avainsanalla ilmoitettu luokan jäsenfunktio tunnetaan staattisena menetelmänä. Sitä voivat käyttää kaikki luokan esiintymät, ei tietyn esiintymän kanssa.

Ymmärretään esimerkin kautta.

 #include int main() { printf('%d',func()); printf('
%d',func()); return 0; } int func() { int count=0; // variable initialization count++; // incrementing counter variable return count; } 

Yllä olevassa koodissa kutsutaan func()-funktiota. Func() -funktiossa count-muuttuja päivitetään. Heti kun funktio on suorittanut suorituksensa, count-muuttujan muisti poistetaan. Jos emme halua poistaa laskentaa muistista, meidän on käytettävä count muuttujaa staattisena. Jos määritämme muuttujan staattiseksi, muuttujaa ei poisteta muistista, vaikka funktio olisi suorittanut suorituksensa loppuun.

Lähtö

 1 1 

Staattinen muuttuja

Staattinen muuttuja on muuttuja, joka säilyttää arvonsa eri funktiokutsuissa.

Syntaksi

Staattisen muuttujan syntaksi on annettu alla:

 static data_type variable_name; 

Katsotaanpa yksinkertaista esimerkkiä staattisesta muuttujasta.

fibonacci-sekvenssi java
 #include int main() { printf('%d',func()); printf('
%d',func()); return 0; } int func() { static int count=0; count++; return count; } 

Yllä olevassa koodissa olemme ilmoittaneet count muuttujan staattiseksi. Kun func() kutsutaan, countin arvoksi päivitetään 1, ja seuraavan funktiokutsun aikana count-muuttujan arvoksi tulee 2. Siksi voidaan sanoa, että staattisen muuttujan arvo säilyy funktiokutsussa .

Lähtö

 1 2 

Staattinen toiminto

Kuten tiedämme, että ei-staattiset funktiot ovat oletuksena globaaleja, tarkoittaa sitä, että funktioon pääsee käsiksi myös tiedoston ulkopuolelta, mutta jos funktio julistetaan staattiseksi, se rajoittaa funktion laajuutta. Staattista toimintoa voi käyttää vain tiedostossa.

Staattinen funktio näyttäisi tältä:

 static void func() { printf('Hello javaTpoint'); } 

Erot b/w staattinen ja globaali muuttuja

Globaalit muuttujat ovat muuttujia, jotka ilmoitetaan funktion ulkopuolella. Nämä globaalit muuttujat ovat olemassa ohjelman alussa ja niiden laajuus säilyy ohjelman loppuun asti. Sitä voi käyttää myös ohjelman ulkopuolelta.

pyspark

Staattiset muuttujat rajoittuvat siihen lähdetiedostoon, jossa ne on määritelty, eli ne eivät ole muiden lähdetiedostojen käytettävissä.

Sekä staattisilla että globaaleilla muuttujilla on staattinen alustus. Tässä staattinen alustus tarkoittaa, että jos emme anna muuttujalle mitään arvoa, muuttujalle annetaan oletusarvoisesti arvo 0.

Erot b/w staattisen paikallisen ja staattisen globaalin muuttujan välillä

Staattinen globaali muuttuja

Jos muuttuja on ilmoitettu staattisella avainsanalla funktion ulkopuolella, se tunnetaan staattisena globaalina muuttujana. Se on käytettävissä koko ohjelman ajan.

Staattinen paikallinen muuttuja

Staattisella avainsanalla varustettu muuttuja ilmoitetaan funktion sisällä, ja sitä kutsutaan staattiseksi paikalliseksi muuttujaksi. Staattisen paikallismuuttujan laajuus on sama kuin automaattisten paikallismuuttujien, mutta sen muisti on käytettävissä koko ohjelman suorittamisen ajan. Kun funktio muuttaa staattisen paikallismuuttujan arvoa yhden funktiokutsun aikana, se pysyy samana myös seuraavan funktiokutsun aikana.

Staattisen muuttujan ominaisuudet

Seuraavat ovat staattisen muuttujan ominaisuudet:

  • Staattisen muuttujan muisti on varattu staattisen muuttujan sisällä.
  • Sen muisti on käytettävissä koko ohjelman ajan, mutta laajuus pysyy samana kuin automaattisten paikallisten muuttujien. Sen
  • arvo säilyy eri funktiokutsuissa.
  • Jos emme anna muuttujalle mitään arvoa, oletusarvo on 0.
  • Globaalia staattista muuttujaa ei voi käyttää ohjelman ulkopuolella, kun taas globaalia muuttujaa voidaan käyttää muilla lähdetiedostoilla.