logo

Kas ir īss int valodā C?

C programmēšanas valodā, īss int ir datu tips, ko izmanto veselu skaitļu vērtību glabāšanai. Tas ir tipa modifikators, ko var izmantot ar int datu tips lai izveidotu mazāku veselu mainīgo lielumu, izmantojot mazāk atmiņas nekā parastais int.

The īss int aizņem datu tips 2 baiti atmiņas, kas ir uz pusi mazāka par parasto int datu tips , un var attēlot veselas vērtības diapazonā no -32 768 uz 32 767 .

Īsā sintakse int

java kamēr nosacījums

Īsā int mainīgā deklarēšanas sintakse ir šāda:

 short int variable_name; 

Piemēram, šāds kods deklarē un inicializē a īss int mainīgais ar nosaukumu vecums:

 short int age = 25; 

Īsie int mainīgie var izraisīt kļūdas, ja tie netiek izmantoti uzmanīgi. Tas ir tāpēc, ka tiem ir mazāks vērtību diapazons nekā int mainīgie un var pārplūst, ja tiek piešķirta vērtība ārpus to diapazona. Šī iemesla dēļ ir svarīgi nodrošināt, lai īsajam int mainīgajam piešķirtās vērtības būtu tā diapazonā.

Turklāt īso atslēgvārdu var izmantot īss int lai deklarētu šāda veida mainīgo. Tāpēc šādas divas deklarācijas ir līdzvērtīgas:

 short int variable_name; short variable_name; 

Daža cita papildu informācija par 'īsais int' datu tips ir šādi:

    Lielums un vērtību diapazons

Kā minēts iepriekš, īss int aizņem 2 baiti atmiņas, kas ir uz pusi mazāka par parastu int datu tipu. Īsā int lielums ir noteikts ieviešanas procesā, kas nozīmē, ka tas var atšķirties atkarībā no izmantotās platformas un kompilatora. Tomēr vienmēr tiek garantēts, ka tas būs mazāks par parasto int.

Runājot par vērtību diapazonu, īss int var saglabāt veselu skaitļu vērtības diapazonā no -32 768 uz 32 767 . Šo diapazonu var noteikt, izmantojot SHRT_MIN un SHRT_MAX konstantes, kas ir definētas robežas.h galvenes fails.

Madhubala
    Vārda “īsais int” lietošana

Īsais int datu tips parasti tiek izmantots, ja ir problēma atmiņā vai ja mainīgajā saglabāto vērtību diapazons ir īsa int diapazonā. Daži piemēri situācijām, kurās var izmantot īsu int:

  • Iegultās sistēmās, kur atmiņa ir ierobežota.
  • Veidojot lielus veselu skaitļu masīvus, kur atmiņas lietojums ir jāoptimizē.
  • Ja ir zināms, ka mainīgajā saglabāto vērtību diapazons ir diapazonā a īss int , piemēram, saglabājot personas vecumu, kas parasti nepārsniedz 100 gadi .
  • Veida modifikatori

The īss int datu tips ir tipa modifikators, kas nozīmē, ka to var izmantot kopā ar citiem datu tipiem, lai izveidotu jaunus datu tipus. Piemēram, derīgas mainīgo deklarācijas ir šādas:

 short int x; short y; short int *ptr; short int arr[10]; 
    Netiešie reklāmguvumi

Veicot aritmētiskās vai salīdzināšanas darbības starp dažādu datu tipu mainīgajiem, C var veikt netiešas konversijas, lai nodrošinātu, ka darbības tiek veiktas pareizi. Izmantojot īsus int mainīgos, ir svarīgi apzināties šos reklāmguvumus, jo tie var izraisīt neparedzētu darbību. Piemēram, apsveriet šādu kodu:

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

Izvade:

 500 

Paskaidrojums:

Šajā kodā z i s ir piešķirta vērtība 500 , kas ir pareizais pievienošanas rezultāts x un un . Tomēr, ja printf paziņojums tiek mainīts uz printf('%hu ', z), izlaide būs 244 , kas ir konvertēšanas rezultāts 500 uz neparakstītu īss int . Tas notiek tāpēc, %hu tiek izmantots formāta specifikators, kas norāda, ka drukājamajai vērtībai ir jābūt neparakstītai īsai int.

    Paaugstināšana un pazemināšana

Veicot darbības starp dažādu datu tipu mainīgajiem, C var veikt paaugstināšanu un pazemināšanu, lai nodrošinātu, ka darbības tiek veiktas pareizi. Paaugstināšana notiek, ja mazāka datu tipa mainīgais tiek netieši pārveidots par lielāka datu tipa mainīgo, savukārt pazemināšana notiek, kad lielāka datu tipa mainīgais tiek netieši pārveidots par mazāka tipa mainīgo. Izmantojot īsos int mainīgos, ir svarīgi apzināties šos paaugstinājumus un pazeminājumus, jo tie var ietekmēt aritmētisko un salīdzināšanas darbību rezultātus.

    Noklusējuma inicializācija

Ja īss int mainīgais tiek deklarēts bez inicializācijas, tā vērtība nav definēta. Citiem vārdiem sakot, tajā var būt jebkura vērtība, tostarp negatīva vērtība vai vērtība ārpus diapazona īss int . Tāpēc ir laba prakse vienmēr inicializēt mainīgos līdz zināmai vērtībai, kad tie tiek deklarēti.

    Liešana

Liešana ir mainīgā konvertēšanas process no viena datu veida uz citu. Lietojot mainīgo uz a īss int , mainīgā vērtība tiek saīsināta, lai ietilptu diapazonā īss int . Piemēram, apsveriet šādu kodu:

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

Šajā kodā vērtība x ir 500 , kas atrodas ārpus īstermiņa int. Tomēr, kad x tiek izmests uz a īss int, vērtība ir saīsināta, lai ietilptu diapazonā īss int , kā rezultātā un tiek piešķirta vērtība -12 . Tāpēc, apraidot mainīgos, ir svarīgi nodrošināt, lai iegūtā vērtība būtu apraidāmā datu veida diapazonā.

    Parakstītība

Pēc noklusējuma, īss int ir parakstīts datu tips , kas nozīmē, ka tas var attēlot gan pozitīvas, gan negatīvas vērtības. Tomēr ir iespējams arī deklarēt īss int kā neparakstītu datu tipu, izmantojot neparakstīts īss int vai neparakstīts īss atslēgvārds . Neparakstīts īss int var attēlot tikai nenegatīvas vērtības, bet tā diapazons tiek dubultots līdz 0 uz 65 535 .

paralēla apstrāde
    Saderība

Kopš īss int ir mazāks datu tips nekā starpt , to var netieši paaugstināt par int, ja to izmanto aritmētika vai salīdzināšanas darbības ar int. Tas nozīmē, ka a īss int var izmantot visur, kur starpt ir sagaidāms, bez nepieciešamības pēc skaidra aktieru sastāva.

    Pārnesamība

Izmērs īss int var atšķirties atkarībā no izmantotās platformas un kompilatora. Lai nodrošinātu koda pārnesamību dažādās platformās, ieteicams izmantot stdint.h galvenes failu , kas definē fiksēta lieluma veselu skaitļu tipus ar noteiktu platumu un zīmi. Piemēram, int16_t tips ir Vesela skaitļa tips ar 16 bitu zīmi , kas ir līdzvērtīgs īss int lielākajā daļā platformu.

    Masīvu indeksēšana

Deklarējot masīvu no īsas int vērtības , katram masīva elementam var piekļūt, izmantojot indeksu. Indekss var būt vesels skaitlis literāls vai mainīgais, kura veids ir int. Tomēr, ja indekss ir tipa mainīgais īss int , tas tiks automātiski paaugstināts par an starpt pirms tiek izmantots, lai piekļūtu masīvam. Piemēram:

 short int arr[10]; short int i = 5; short int val = arr[i]; // i is promoted to int before being used as an index 
    Bitu manipulācijas

īss int var izmantot bitu manipulācijas darbībām, piemēram, pārslēgšanās un maskēšana . Pārslēdzot a īss int vērtība, rezultāts ir īsa int vērtība. Tomēr, izmantojot bitveida operatorus, piemēram & un |, īsās int vērtības vispirms tiek paaugstinātas uz int pirms operācijas veikšanas.

    Performance

Dažos gadījumos, izmantojot short int, nevis int, var uzlabot veiktspēju, īpaši platformās ar ierobežotu atmiņu vai apstrādes jaudu. Tomēr tas ir atkarīgs no konkrētās lietojumprogrammas un izmantotās aparatūras, un tas jāpārbauda katrā gadījumā atsevišķi.

    Inicializācija, izmantojot sufiksu

C valoda nodrošina sufiksu, lai inicializētu mainīgos ar īsu int veidu. Sufikss 's' vai 'S' var izmantot ar konstantu vērtību, lai skaidri norādītu īsu int konstanti. Piemēram:

 Short int x=10s;