logo

Mikä on lyhyt int C:ssä?

C-ohjelmointikielellä lyhyt int on tietotyyppi, jota käytetään kokonaislukuarvojen tallentamiseen. Se on tyyppimuunnos, jota voidaan käyttää int tietotyyppi luodaksesi pienemmän kokonaislukumuuttujan, joka käyttää vähemmän muistia kuin tavallinen int.

The lyhyt int tietotyyppi käyttää 2 tavua muistia, joka on puolet tavallisesta int tietotyyppi , ja se voi edustaa kokonaislukuarvoja alueella -32,768 kohtaan 32,767 .

Lyhyen int

mysql-päivitykseen liittyminen

Lyhyen int-muuttujan ilmoittamisen syntaksi on seuraava:

 short int variable_name; 

Esimerkiksi seuraava koodi ilmoittaa ja alustaa a lyhyt int muuttuja nimeltä ikä:

 short int age = 25; 

Lyhyet int-muuttujat voivat johtaa virheisiin, jos niitä ei käytetä huolellisesti. Tämä johtuu siitä, että niillä on pienempi arvoalue kuin int muuttujia ja ne voivat ylivuodata, jos niille annetaan arvo alueen ulkopuolella. Tästä syystä on tärkeää varmistaa, että lyhyelle int-muuttujalle annetut arvot ovat sen alueella.

Lisäksi lyhyttä avainsanaa voidaan käyttää lyhyt int ilmoittaaksesi tämän tyyppisen muuttujan. Siksi seuraavat kaksi ilmoitusta ovat samanarvoisia:

 short int variable_name; short variable_name; 

Muutamia muita lisätietoja aiheesta 'short int' -tietotyyppi ovat seuraavat:

    Koko ja arvoalue

Kuten aiemmin mainittiin, lyhyt int vie 2 tavua muistia, joka on puolet tavallisen int-tietotyypin koosta. Lyhyen int:n koko on toteutuksen määrittelemä, mikä tarkoittaa, että se voi vaihdella käytettävän alustan ja kääntäjän mukaan. Se on kuitenkin aina taatusti pienempi kuin tavallinen int.

Mitä tulee arvoalueeseen, lyhyt int voi tallentaa kokonaislukuarvoja alueella -32,768 kohtaan 32,767 . Tämä alue voidaan määrittää käyttämällä SHRT_MIN ja SHRT_MAX vakiot, jotka on määritelty kohdassa rajat.h otsikkotiedosto.

    'lyhyen int' käyttö

Lyhyt int -tietotyyppiä käytetään tyypillisesti, kun muistitila on huolenaihe tai kun muuttujaan tallennettu arvoalue on lyhyen int:n alueella. Joitakin esimerkkejä tilanteista, joissa lyhyttä int-sanaa voidaan käyttää, ovat:

  • Sulautettuihin järjestelmiin, joissa muisti on rajoitettu.
  • Kun luodaan suuria kokonaislukutaulukoita, joissa muistin käyttö on optimoitava.
  • Kun muuttujaan tallennettujen arvojen alueen tiedetään olevan alueella a lyhyt int , kuten henkilön iän, joka ei yleensä ylitä 100 vuotta .
  • Type Modifiers

The lyhyt int-tietotyyppi on tyyppimuunnin, mikä tarkoittaa, että sitä voidaan käyttää yhdessä muiden tietotyyppien kanssa uusien tietotyyppien luomiseen. Esimerkiksi seuraavat ovat kelvollisia muuttujien ilmoituksia:

javascript if -lause
 short int x; short y; short int *ptr; short int arr[10]; 
    Implisiittiset konversiot

Suorittaessaan aritmeettisia tai vertailuoperaatioita eri tietotyyppien muuttujien välillä C voi suorittaa implisiittisiä muunnoksia varmistaakseen, että operaatiot suoritetaan oikein. Lyhyitä int-muuttujia käytettäessä on tärkeää olla tietoinen näistä muunnoksista, koska ne voivat johtaa odottamattomaan toimintaan. Harkitse esimerkiksi seuraavaa koodia:

 #include int main() { short int x = 300; short int y = 200; short int z = x + y; printf('%d
', z); return 0; } 

Lähtö:

 500 

Selitys:

Tässä koodissa z i s:lle on määritetty arvo 500 , mikä on oikea tulos lisäämisestä x ja ja . Kuitenkin, jos printf lausunto muutetaan muotoon printf('%hu ', z), tulos tulee olemaan 244 , joka on muuntamisen tulos 500 allekirjoittamattomalle lyhyt int . Se tapahtuu, koska %hu muotomääritystä käytetään, mikä osoittaa, että tulostettavan arvon tulee olla etumerkitön lyhyt int.

    Ylennys ja alennus

Suorittaessaan operaatioita eri tietotyyppien muuttujien välillä C voi suorittaa ylennyksiä ja alennuksia varmistaakseen, että toiminnot suoritetaan oikein. Ylennys tapahtuu, kun pienemmän tietotyypin muuttuja muunnetaan implisiittisesti suuremman tietotyypin muuttujaksi, kun taas aleneminen tapahtuu, kun suuremman tietotyypin muuttuja muunnetaan implisiittisesti pienemmän tietotyypin muuttujaksi. Lyhyitä int-muuttujia käytettäessä on tärkeää olla tietoinen näistä ylennyksistä ja alennuksista, koska ne voivat vaikuttaa aritmeettisten ja vertailutoimintojen tuloksiin.

    Oletusalustus

Jos lyhyt int muuttuja ilmoitetaan alustamatta, sen arvo on määrittelemätön. Toisin sanoen se voi sisältää minkä tahansa arvon, mukaan lukien negatiivisen arvon tai alueen ulkopuolella olevan arvon lyhyt int . Siksi on hyvä käytäntö alustaa muuttujat aina tunnettuun arvoon, kun ne ilmoitetaan.

    Valu

Valu on prosessi, jossa muuttuja muunnetaan tietotyypistä toiseen. Kun muuttuja lähetetään a lyhyt int , muuttujan arvo katkaistaan ​​niin, että se sopii alueelle lyhyt int . Harkitse esimerkiksi seuraavaa koodia:

 int x = 500; short int y = (short int) x; 

Tässä koodissa arvo x On 500 , joka on lyhyen int. Kuitenkin milloin x on valettu a lyhyt int, arvo typistetään niin, että se mahtuu alueelle lyhyt int , johtaen ja jolle on annettu arvo -12 . Siksi muuttujia heittäessä on tärkeää varmistaa, että tuloksena oleva arvo on välitettävän tietotyypin alueella.

    Allekirjoitus

Oletuksena, lyhyt int on allekirjoitettu tietotyyppi , mikä tarkoittaa, että se voi edustaa sekä positiivisia että negatiivisia arvoja. On kuitenkin myös mahdollista ilmoittaa lyhyt int allekirjoittamattomana tietotyyppinä käyttämällä allekirjoittamaton lyhyt väliv tai allekirjoittamaton lyhyt avainsana . Etumerkitön lyhyt int voi edustaa vain ei-negatiivisia arvoja, mutta sen alue on kaksinkertainen 0 kohtaan 65,535 .

java ohjelmointikielen opetusohjelma
    Yhteensopivuus

Siitä asti kun lyhyt int on pienempi tietotyyppi kuin int , se voidaan implisiittisesti ylentää int:ksi, kun sitä käytetään aritmeettinen tai vertailuoperaatioita int. Se tarkoittaa, että a lyhyt int voidaan käyttää missä tahansa int on odotettavissa ilman erityistä näyttelijää.

    Siirrettävyys

Koko lyhyt int voivat vaihdella käytettävän alustan ja kääntäjän mukaan. Koodin siirrettävyyden varmistamiseksi eri alustoilla on suositeltavaa käyttää stdint.h otsikkotiedosto , joka määrittää kiinteän kokoiset kokonaislukutyypit tietyllä leveydellä ja etumerkillä. Esimerkiksi, int16_t tyyppi on 16-bittinen etumerkillinen kokonaislukutyyppi , joka vastaa lyhyt int useimmilla alustoilla.

    Array Indeksointi

Kun julistetaan joukko lyhyet int arvot , jokaiseen taulukon elementtiin päästään indeksin avulla. Indeksi voi olla kokonaislukuliteraali tai muuttuja, jonka tyyppi on int. Kuitenkin, jos indeksi on tyyppinen muuttuja lyhyt int , se ylennetään automaattisesti an int ennen kuin sitä käytetään taulukkoon pääsyyn. Esimerkiksi:

 short int arr[10]; short int i = 5; short int val = arr[i]; // i is promoted to int before being used as an index 
    Bittien manipulointi

lyhyt int voidaan käyttää bitinkäsittelytoimintoihin, kuten siirtymässä ja naamiointi . Vaihdettaessa a lyhyt int arvo, tuloksena on lyhyt int-arvo. Kuitenkin käytettäessä bittikohtaisia ​​operaattoreita, kuten & ja |, lyhyet int-arvot siirretään ensin int-arvoihin ennen toiminnon suorittamista.

    Esitys

Joissakin tapauksissa lyhyen int:n käyttäminen int:n sijaan voi parantaa suorituskykyä, erityisesti alustoilla, joilla on rajoitettu muisti tai prosessointiteho. Se riippuu kuitenkin tietystä sovelluksesta ja käytetystä laitteistosta, ja se tulisi testata tapauskohtaisesti.

    Alustus päätteellä

C-kieli tarjoaa jälkiliitteen muuttujien alustamiseksi lyhyellä int-tyypillä. Suffiksi 's' tai 'S' voidaan käyttää vakioarvon kanssa määrittääksesi lyhyen int-vakion nimenomaisesti. Esimerkiksi:

 Short int x=10s;