muuttujan määreist?

Voiskos juku viisas korjata ja täydentää jos päätelmäni ovat vääriä?

Ja sekä onko muita määreitä olemas?

Ja kutsutaankos noita virallisesti määreis vai miksikäs?



const - silloin kun pysyvä tieto, nopeuttaa.


register - silloin kun tieto muuttuu useasti, nopeuttaa.


static - kun halutaan functiossa säilyttää tieto eri kutsukertojen välil. Mitä hyötyä asettaa functiossa muuttuja static int mutta kuitenkin nollaa sen joka kerta?


static const - ?
3211
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

Tääl olis yks viesti vail vastauksii, noh kai kysymys liian tyhmä?

Äänestä

Et maininnut kieltä, mutta oletan että kyse on C-kielestä.

Avainsanalla const voidaan määritellä nimettyjä vakioita, eli tosiaan pysyvää tietoa, jota ei tavallisesti voi muuttaa myöhemmin. Toinen vaihtoehto on esiprosessorin #define-direktiivin käyttö, joka on yleensä vielä nopeampi tapa määritellä vakioita, mutta toisaalta virheiden etsiminen ohjelmasta on tällöin hankalampaa. Aloittelijan on siis ehkä syytä pysytellä constilla määritellyissä vakioissa.

Avainsanaa register voi tosiaan käyttää silloin kun tieto muuttuu useasti, mutta yleensä nykyaikaiset kääntäjät jättävät tuon kokonaan huomiotta, koska osaavat optimoida koodin automaattisesti yhtä nopeaksi ilman sitäkin. Eli useimmiten melko hyödytöntä käyttää sitä.

Funktion tai globaalin muuttujan voi määritellä staattiseksi silloin, jos sitä ei tarvitse kutsua muualta kuin siitä tiedostosta jossa funktio on määritelty.

Funktion sisällä määritelty staattinen muuttuja taas säilyttää tietonsa kutsukertojen välillä, eli ihan niin kuin sanoit. Tuo staattisen muuttujan nollaamisen hyöty riippuu vähän tilanteesta.

static const funktioiden ulkopuolella käytettynä määrittelee staattisen vakion, eli vakion jota ei voi käyttää kuin siinä tiedostossa jossa se on määritelty. Vakioiden ja muuttujien toiminta-alueen rajaaminen mahdollisimman suppeaksi kannattaa yleensä, koska tällöin säästyy muistia ja todennäköisesti ohjelman toimintakin nopeutuu. Myös virheiden paikantaminen on silloin helpompaa.

Äänestä
  • Kiitoksia todella paljon nyt nuo asiat on jotenkuten ymmärretty, kieli unohtu mainita se on C . Miksköhän kirjoissa nuo samat asiat pitää selostaa joko liian vaikeesti tai sitten ihan liian pintapuolisesti.

    Äänestä

Kommentoi aloitusta


qwatst kirjoitti:

Voiskos juku viisas korjata ja täydentää jos päätelmäni ovat vääriä?

Ja sekä onko muita määreitä olemas?

Ja kutsutaankos noita virallisesti määreis vai miksikäs?



const - silloin kun pysyvä tieto, nopeuttaa.


register - silloin kun tieto muuttuu useasti, nopeuttaa.


static - kun halutaan functiossa säilyttää tieto eri kutsukertojen välil. Mitä hyötyä asettaa functiossa muuttuja static int mutta kuitenkin nollaa sen joka kerta?


static const - ?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu