logo

Ce este short int în C?

În limbajul de programare C, scurt int este un tip de date folosit pentru a stoca valori întregi. Este un modificator de tip care poate fi folosit cu int tipul de date pentru a crea o variabilă întreagă mai mică, folosind mai puțină memorie decât un int obișnuit.

The scurt int tipul de date ocupă 2 octeți de memorie, care este jumătate din dimensiunea unui obișnuit int tipul de date , și poate reprezenta valori întregi în intervalul de -32.768 la 32.767 .

Sintaxa pentru Short int

limbaj groovy

Sintaxa pentru declararea unei variabile int scurte este următoarea:

 short int variable_name; 

De exemplu, următorul cod declară și inițializează a scurt int variabila numita varsta:

 short int age = 25; 

Variabilele int scurte pot duce la erori dacă nu sunt folosite cu atenție. Se datorează faptului că au o gamă mai mică de valori decât variabile int și poate depăși dacă este atribuită o valoare în afara intervalului lor. Din acest motiv, este important să ne asigurăm că valorile atribuite unei variabile int scurte se află în intervalul acesteia.

În plus, cuvântul cheie scurt poate fi folosit în loc de scurt int pentru a declara o variabilă de acest tip. Prin urmare, următoarele două declarații sunt echivalente:

 short int variable_name; short variable_name; 

Alte detalii suplimentare despre tipul de date „short int”. sunt după cum urmează:

    Dimensiunea și intervalul de valori

După cum am menționat mai devreme, short int ocupă 2 octeți de memorie, care este jumătate din dimensiunea unui tip de date int obișnuit. Mărimea unui int scurt este definită de implementare, ceea ce înseamnă că poate varia în funcție de platforma și compilatorul utilizat. Cu toate acestea, este întotdeauna garantat că va fi mai mic decât un int obișnuit.

În ceea ce privește intervalul de valori, un int scurt poate stoca valori întregi în intervalul de -32.768 la 32.767 . Acest interval poate fi determinat folosind SHRT_MIN și SHRT_MAX constante, care sunt definite în limite.h fișier antet.

    Utilizarea lui „short int”

Tipul de date short int este folosit de obicei atunci când spațiul de memorie este o problemă sau când intervalul de valori stocat în variabilă se află în intervalul unui short int. Câteva exemple de situații în care poate fi folosit un int scurt includ:

  • În sistemele încorporate în care memoria este limitată.
  • Când se creează matrice mari de numere întregi în care utilizarea memoriei trebuie optimizată.
  • Când intervalul de valori stocat în variabilă este cunoscut ca fiind în intervalul a scurt int , cum ar fi stocarea vârstei unei persoane, care de obicei nu depășește 100 de ani .
  • Modificatori de tip

The tipul de date short int este un modificator de tip, ceea ce înseamnă că poate fi utilizat în combinație cu alte tipuri de date pentru a crea noi tipuri de date. De exemplu, următoarele sunt declarații valide de variabile:

 short int x; short y; short int *ptr; short int arr[10]; 
    Conversii implicite

Atunci când efectuează operații aritmetice sau de comparare între variabile de diferite tipuri de date, C poate efectua conversii implicite pentru a se asigura că operațiile sunt efectuate corect. Când utilizați variabile int scurte, este important să fiți conștienți de aceste conversii, deoarece pot avea ca rezultat un comportament neașteptat. De exemplu, luați în considerare următorul cod:

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

Ieșire:

 500 

Explicaţie:

În acest cod, z i i se atribuie valoarea de 500 , care este rezultatul corect al adăugării X și și . Cu toate acestea, dacă printf declarația este schimbată în printf('%hu ', z), ieșirea va fi 244 , care este rezultatul conversiei 500 la un nesemnat scurt int . Se întâmplă pentru că %hu este utilizat un specificator de format, care indică faptul că valoarea care este tipărită ar trebui să fie un int scurt fără semn.

funcția săgeată dactilografiată
    Promovare și retrogradare

Atunci când efectuează operațiuni între variabile de diferite tipuri de date, C poate efectua promovări și retrogradări pentru a se asigura că operațiunile sunt efectuate corect. O promovare are loc atunci când o variabilă de un tip de date mai mic este implicit convertită într-o variabilă de un tip de date mai mare, în timp ce o retrogradare are loc atunci când o variabilă de un tip de date mai mare este convertită implicit într-o variabilă de un tip de date mai mic. Când folosiți variabile int scurte, este important să fiți conștienți de aceste promovări și retrogradări, deoarece pot afecta rezultatele operațiilor aritmetice și de comparare.

    Inițializare implicită

În cazul în care o variabilă int scurtă este declarat fără a fi inițializat, valoarea sa este nedefinită. Cu alte cuvinte, poate conține orice valoare, inclusiv o valoare negativă sau o valoare în afara intervalului de scurt int . Prin urmare, este o practică bună să inițializați întotdeauna variabilele la o valoare cunoscută atunci când sunt declarate.

    Casting

Casting este procesul de conversie a unei variabile de la un tip de date la altul. Când turnați o variabilă la a scurt int , valoarea variabilei este trunchiată pentru a se încadra în intervalul de scurt int . De exemplu, luați în considerare următorul cod:

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

În acest cod, valoarea lui X este 500 , care se află în afara intervalului short int. Cu toate acestea, când X este turnat la a int scurt, valoarea este trunchiată pentru a se încadra în intervalul de scurt int , rezultând și fiind atribuită valoarea de -12 . Prin urmare, atunci când turnați variabile, este important să vă asigurați că valoarea rezultată se află în intervalul tipului de date care este proiectat.

    Semnat

În mod implicit, scurt int este o tip de date semnat , ceea ce înseamnă că poate reprezenta atât valori pozitive, cât și negative. Cu toate acestea, este și posibil să se declare scurt int ca tip de date nesemnate, folosind unsigned short int sau cuvânt cheie scurt nesemnat . Un int scurt fără semn poate reprezenta doar valori nenegative, dar intervalul său este dublat la 0 la 65.535 .

note de subsol de reducere
    Compatibilitate

De cand scurt int este un tip de date mai mic decât int , poate fi promovat implicit la un int atunci când este utilizat în aritmetic sau operații de comparare cu un int. Înseamnă că a scurt int poate fi folosit oriunde an int este de așteptat, fără a fi nevoie de o distribuție explicită.

    Portabilitate

Mărimea la scurt int poate varia în funcție de platforma și compilatorul utilizat. Pentru a asigura portabilitatea codului pe diferite platforme, se recomandă utilizarea fișier antet stdint.h , care definește tipuri de numere întregi de dimensiune fixă ​​cu lățimi și semnături specifice. De exemplu, cel tip int16_t este o Tip întreg cu semn pe 16 biți , care este echivalent cu scurt int pe majoritatea platformelor.

    Indexarea matricei

Când se declară o matrice de valori int scurte , fiecare element al matricei este accesat folosind un index. Indicele poate fi un literal întreg sau o variabilă de tip int. Totuși, dacă indicele este o variabilă de tip scurt int , va fi promovat automat la un int înainte de a fi folosit pentru a accesa matricea. De exemplu:

 short int arr[10]; short int i = 5; short int val = arr[i]; // i is promoted to int before being used as an index 
    Manipularea biților

scurt int poate fi folosit pentru operațiuni de manipulare a biților, cum ar fi schimbare și mascarea . La schimbarea a scurt int valoare, rezultatul este o valoare int scurtă. Cu toate acestea, atunci când utilizați operatori pe biți, cum ar fi & și |, valorile int scurte sunt mai întâi promovate la int înainte ca operația să fie efectuată.

    Performanţă

În unele cazuri, folosirea short int în loc de int poate îmbunătăți performanța, în special pe platformele cu memorie sau putere de procesare limitate. Totuși, depinde de aplicația specifică și de hardware-ul utilizat și ar trebui testat de la caz la caz.

    Inițializare folosind sufix

Limbajul C oferă un sufix pentru inițializarea variabilelor cu un tip int scurt. Sufixul 's' sau „S” poate fi folosit cu o valoare constantă pentru a specifica explicit o constantă int scurtă. De exemplu:

 Short int x=10s;