logo

Kas yra trumpasis int C?

C programavimo kalba, trumpas tarpt yra duomenų tipas, naudojamas sveikųjų skaičių reikšmėms saugoti. Tai tipo modifikatorius, kurį galima naudoti su int duomenų tipas Norėdami sukurti mažesnį sveikąjį kintamąjį, naudodami mažiau atminties nei įprastas int.

The trumpas tarpt duomenų tipas užima 2 baitai atminties, kuri yra perpus mažesnė už įprastą int duomenų tipas , ir gali rodyti sveikųjų skaičių reikšmes diapazone -32 768 į 32 767 .

Sintaksė Short int

1 milijonas kiek 0

Trumpojo int kintamojo deklaravimo sintaksė yra tokia:

 short int variable_name; 

Pavyzdžiui, šis kodas deklaruoja ir inicijuoja a trumpas tarpt kintamasis pavadintas amžius:

 short int age = 25; 

Trumpi int kintamieji gali sukelti klaidų, jei jie nebus naudojami atsargiai. Taip yra todėl, kad jų verčių diapazonas yra mažesnis nei int kintamieji ir gali perpildyti, jei priskiriama vertė už jų diapazono ribų. Dėl šios priežasties svarbu užtikrinti, kad trumpajam int kintamajam priskirtos reikšmės būtų jo diapazone.

Be to, vietoj trumpas tarpt deklaruoti tokio tipo kintamąjį. Todėl šios dvi deklaracijos yra lygiavertės:

 short int variable_name; short variable_name; 

Kai kurios kitos papildomos informacijos apie „short int“ duomenų tipas yra tokie:

    Dydis ir verčių diapazonas

Kaip minėta anksčiau, trumpas int užima 2 baitai atminties, kuri yra perpus mažesnė už įprastą int duomenų tipą. Trumpo int dydis yra apibrėžtas įgyvendinimo, o tai reiškia, kad jis gali skirtis priklausomai nuo naudojamos platformos ir kompiliatoriaus. Tačiau visada garantuojama, kad jis bus mažesnis nei įprastas int.

Kalbant apie reikšmių diapazoną, trumpasis int gali saugoti sveikųjų skaičių reikšmes diapazone -32 768 į 32 767 . Šį diapazoną galima nustatyti naudojant SHRT_MIN ir SHRT_MAX konstantos, kurios apibrėžtos ribos.h antraštės failą.

    „short int“ naudojimas

Trumpasis int duomenų tipas paprastai naudojamas, kai reikia atminties vietos arba kai kintamajame saugomų reikšmių diapazonas yra trumpojo int diapazone. Keletas situacijų, kuriose gali būti naudojamas trumpasis int, pavyzdžiai:

  • Įterptosiose sistemose, kur atmintis yra ribota.
  • Kuriant didelius sveikųjų skaičių masyvus, kuriuose reikia optimizuoti atminties naudojimą.
  • Kai žinoma, kad kintamajame saugomų reikšmių diapazonas yra a diapazone trumpas tarpt , pavyzdžiui, saugomas asmens amžius, kuris paprastai neviršija 100 metų .
  • Tipo modifikatoriai

The trumpas int duomenų tipas yra tipo modifikatorius, o tai reiškia, kad jį galima naudoti kartu su kitais duomenų tipais kuriant naujus duomenų tipus. Pavyzdžiui, šios yra galiojančios kintamųjų deklaracijos:

 short int x; short y; short int *ptr; short int arr[10]; 
    Netiesioginės konversijos

Atliekant aritmetines ar palyginimo operacijas tarp skirtingų duomenų tipų kintamųjų, C gali atlikti numanomas konversijas, kad įsitikintų, jog operacijos atliekamos teisingai. Naudojant trumpus int kintamuosius, svarbu žinoti apie šias konversijas, nes jos gali sukelti netikėtą elgesį. Pavyzdžiui, apsvarstykite šį kodą:

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

Išvestis:

Sree Ramanujan
 500 

Paaiškinimas:

Šiame kode z i s priskirta vertė 500 , tai yra teisingas pridėjimo rezultatas x ir ir . Tačiau, jei printf pareiškimas pakeistas į printf('%hu ', z), produkcija bus 244 , kuris yra konvertavimo rezultatas 500 nepasirašytam trumpas tarpt . Taip atsitinka todėl, kad %hu naudojamas formato specifikatorius, kuris rodo, kad spausdinama reikšmė turi būti nepasirašytas trumpasis int.

    Paaukštinimas ir pažeminimas

Atlikdama operacijas tarp skirtingų duomenų tipų kintamųjų, C gali atlikti paaukštinimą ir pažeminimą, kad įsitikintų, jog operacijos atliekamos teisingai. Paaukštinimas įvyksta, kai mažesnio duomenų tipo kintamasis netiesiogiai konvertuojamas į didesnio tipo duomenų kintamąjį, o pažeminimas įvyksta, kai didesnio tipo duomenų kintamasis netiesiogiai konvertuojamas į mažesnio duomenų tipo kintamąjį. Naudojant trumpus int kintamuosius, svarbu žinoti apie šiuos paaukštinimus ir pažeminimus, nes jie gali turėti įtakos aritmetinių ir palyginimo operacijų rezultatams.

    Numatytasis inicijavimas

Jeigu trumpas int kintamasis deklaruojamas be inicijavimo, jo reikšmė neapibrėžta. Kitaip tariant, jame gali būti bet kokia reikšmė, įskaitant neigiamą reikšmę arba vertę, esančią už diapazono ribų trumpas tarpt . Todėl gera praktika visada inicijuoti kintamuosius į žinomą reikšmę, kai jie deklaruojami.

    Liejimas

Liejimas yra kintamojo konvertavimo iš vieno duomenų tipo į kitą procesas. Perkeliant kintamąjį į a trumpas tarpt , kintamojo reikšmė sutrumpinama, kad tilptų diapazone trumpas tarpt . Pavyzdžiui, apsvarstykite šį kodą:

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

Šiame kode reikšmė x yra 500 , kuris yra už trumpųjų tarpt. diapazono ribų. Tačiau kai x yra metamas į a trumpas tarpas, reikšmė sutrumpinama, kad tilptų diapazone trumpas tarpt , todėl ir priskiriama vertė -12 . Todėl, perduodant kintamuosius, svarbu užtikrinti, kad gauta reikšmė būtų perduodamo duomenų tipo diapazone.

    Pasirašymas

Pagal numatytuosius nustatymus trumpas tarpt yra pasirašytų duomenų tipas , o tai reiškia, kad jis gali reikšti ir teigiamas, ir neigiamas reikšmes. Tačiau galima ir deklaruoti trumpas tarpt kaip nepasirašytą duomenų tipą, naudojant nepasirašytas trumpas tarpt arba nepasirašytas trumpasis raktinis žodis . Nepasirašytas trumpasis int gali reikšti tik neneigiamas reikšmes, bet jo diapazonas padvigubinamas 0 į 65 535 .

Pyspark sql
    Suderinamumas

Nuo trumpas tarpt yra mažesnis duomenų tipas nei tarpt , jis gali būti netiesiogiai paaukštintas į int, kai naudojamas aritmetika arba palyginimo operacijos su tarpt. Tai reiškia, kad a trumpas tarpt gali būti naudojamas bet kur tarpt tikimasi, be aiškaus aktoriaus poreikio.

    Perkeliamumas

Dydis trumpas tarpt gali skirtis priklausomai nuo naudojamos platformos ir kompiliatoriaus. Norint užtikrinti kodo perkeliamumą įvairiose platformose, rekomenduojama naudoti stdint.h antraštės failą , kuris apibrėžia fiksuoto dydžio sveikųjų skaičių tipus su tam tikru pločiu ir ženklu. Pavyzdžiui, int16_t tipas yra 16 bitų pasirašyto sveikojo skaičiaus tipas , kuri yra lygiavertė trumpas tarpt daugumoje platformų.

    Masyvo indeksavimas

Deklaruojant masyvą trumpos int reikšmės , kiekvienas masyvo elementas pasiekiamas naudojant indeksą. Indeksas gali būti sveikasis literalas arba int tipo kintamasis. Tačiau jei indeksas yra tipo kintamasis trumpas tarpt , jis bus automatiškai paaukštintas į an tarpt prieš naudojant prieigai prie masyvo. Pavyzdžiui:

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

trumpas tarpt gali būti naudojamas bitų manipuliavimo operacijoms, pvz perjungimas ir maskavimas . Perjungiant a trumpas tarpt reikšmę, rezultatas yra trumpoji int reikšmė. Tačiau naudojant bitinius operatorius kaip & ir |, trumposios int reikšmės pirmiausia perkeliamos į int prieš atliekant operaciją.

    Spektaklis

Kai kuriais atvejais vietoj int naudojant trumpąjį int gali pagerėti našumas, ypač platformose su ribota atmintimi ar apdorojimo galia. Tačiau tai priklauso nuo konkrečios programos ir naudojamos aparatinės įrangos ir turėtų būti išbandyta kiekvienu konkrečiu atveju.

    Inicijavimas naudojant priesagą

C kalba suteikia priesagą kintamiesiems inicijuoti trumpuoju int tipu. Priesaga 's' arba 'S' gali būti naudojamas su pastovia verte, kad būtų aiškiai nurodyta trumpoji int konstanta. Pavyzdžiui:

 Short int x=10s;