logo

Què és int curt en C?

En llenguatge de programació C, curt int és un tipus de dades utilitzat per emmagatzemar valors enters. És un modificador de tipus que es pot utilitzar amb el int tipus de dades per crear una variable entera més petita, utilitzant menys memòria que una variable int normal.

El curt int el tipus de dades ocupa 2 bytes de memòria, que és la meitat de la mida d'un regular int tipus de dades , i pot representar valors enters en l'interval de -32,768 a 32,767 .

Sintaxi de Short int

javascript for bucle

La sintaxi per declarar una variable int curta és la següent:

 short int variable_name; 

Per exemple, el codi següent declara i inicialitza a curt int variable anomenada edat:

 short int age = 25; 

Les variables int curtes poden provocar errors si no s'utilitzen amb cura. És perquè tenen un rang de valors més petit que variables int i poden desbordar-se si se li assigna un valor fora del seu rang. Per aquest motiu, és important assegurar-se que els valors assignats a una variable int curta es troben dins del seu rang.

A més, es pot utilitzar la paraula clau curta en lloc de curt int per declarar una variable d'aquest tipus. Per tant, les dues declaracions següents són equivalents:

 short int variable_name; short variable_name; 

Alguns altres detalls addicionals sobre el tipus de dades 'short int' són els següents:

    Mida i rang de valors

Com s'ha esmentat anteriorment, short int ocupa 2 bytes de memòria, que és la meitat de la mida d'un tipus de dades int normal. La mida d'un int curt està definida per la implementació, el que significa que pot variar segons la plataforma i el compilador que s'utilitzi. Tanmateix, sempre es garanteix que serà més petit que un int normal.

Pel que fa a l'interval de valors, un curt int pot emmagatzemar valors enters en l'interval de -32,768 a 32,767 . Aquest rang es pot determinar mitjançant el SHRT_MIN i SHRT_MAX constants, que es defineixen a la límits.h fitxer de capçalera.

    Ús de 'short int'

El tipus de dades short int s'utilitza normalment quan l'espai de memòria és un problema, o quan l'interval de valors que s'emmagatzemen a la variable es troba dins del rang d'un short int. Alguns exemples de situacions en què es pot utilitzar un int curt inclouen:

reducció de notes a peu de pàgina
  • En sistemes encastats on la memòria és limitada.
  • Quan es creen grans matrius d'enters on s'ha d'optimitzar l'ús de la memòria.
  • Quan se sap que l'interval de valors que s'emmagatzema a la variable està dins de l'interval de a curt int , com ara emmagatzemar l'edat d'una persona, que normalment no supera 100 anys .
  • Modificadors de tipus

El tipus de dades short int és un modificador de tipus, el que significa que es pot utilitzar en combinació amb altres tipus de dades per crear nous tipus de dades. Per exemple, les següents són declaracions vàlides de variables:

 short int x; short y; short int *ptr; short int arr[10]; 
    Conversions implícites

Quan es realitza operacions aritmètiques o de comparació entre variables de diferents tipus de dades, C pot realitzar conversions implícites per garantir que les operacions es realitzen correctament. Quan utilitzeu variables int curtes, és important tenir en compte aquestes conversions, ja que poden provocar un comportament inesperat. Per exemple, considereu el codi següent:

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

Sortida:

 500 

Explicació:

En aquest codi, z i s'ha assignat el valor de 500 , que és el resultat correcte de la suma x i i . Tanmateix, si el imprimirf la declaració es canvia a printf('%hu ', z), la sortida serà 244 , que és el resultat de la conversió 500 a un sense signar curt int . Passa perquè el %hu s'utilitza l'especificador de format, que indica que el valor que s'imprimeix hauria de ser un int curt sense signar.

    Promoció i Descens

Quan es realitza operacions entre variables de diferents tipus de dades, C pot realitzar promocions i baixades de categoria per garantir que les operacions es realitzen correctament. Una promoció es produeix quan una variable d'un tipus de dades més petit es converteix implícitament en una variable d'un tipus de dades més gran, mentre que una degradació es produeix quan una variable d'un tipus de dades més gran es converteix implícitament en una variable d'un tipus de dades més petit. Quan s'utilitzen variables int curtes, és important tenir en compte aquestes promocions i descensos, ja que poden afectar els resultats de les operacions aritmètiques i de comparació.

    Inicialització per defecte

Si a variable int curta es declara sense ser inicialitzat, el seu valor no està definit. En altres paraules, pot contenir qualsevol valor, inclòs un valor negatiu o un valor fora de l'interval de curt int . Per tant, és una bona pràctica inicialitzar sempre les variables a un valor conegut quan es declaren.

    Càsting

Càsting és el procés de conversió d'una variable d'un tipus de dades a un altre. Quan es llança una variable a a curt int , el valor de la variable es trunca per ajustar-se a l'interval de curt int . Per exemple, considereu el codi següent:

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

En aquest codi, el valor de x és 500 , que està fora del rang de curt int. Tanmateix, quan x s'emet a a int curt, el valor es trunca per ajustar-se a l'interval de curt int , resultant en i se li assigna el valor de -12 . Per tant, quan es transmeten variables, és important assegurar-se que el valor resultant estigui dins de l'interval del tipus de dades que s'està emet.

    Signatura

Per defecte, curt int és un tipus de dades signades , el que significa que pot representar tant valors positius com negatius. Tanmateix, també és possible declarar curt int com a tipus de dades sense signar, utilitzant el curt sense signar int o paraula clau curta sense signar . Un int curt sense signe només pot representar valors no negatius, però el seu rang es duplica a 0 a 65,535 .

quins mesos són q3
    Compatibilitat

Des de curt int és un tipus de dades més petit que int , es pot promocionar implícitament a int quan s'utilitza a aritmètica o operacions de comparació amb un int. Vol dir que a curt int es pot utilitzar a qualsevol lloc int s'espera, sense necessitat d'un repartiment explícit.

    Portabilitat

La mida de curt int pot variar segons la plataforma i el compilador que s'utilitzi. Per garantir la portabilitat del codi entre diferents plataformes, es recomana utilitzar el Fitxer de capçalera stdint.h , que defineix tipus d'enters de mida fixa amb amplades i signatura específiques. Per exemple, el tipus int16_t és un Tipus d'enter amb signe de 16 bits , que equival a curt int a la majoria de plataformes.

    Indexació de matrius

Quan es declara una matriu de valors int curts , s'accedeix a cada element de la matriu mitjançant un índex. L'índex pot ser un literal enter o una variable de tipus int. Tanmateix, si l'índex és una variable de tipus curt int , es promocionarà automàticament a un int abans de ser utilitzat per accedir a la matriu. Per exemple:

 short int arr[10]; short int i = 5; short int val = arr[i]; // i is promoted to int before being used as an index 
    Manipulació de bits

curt int es pot utilitzar per a operacions de manipulació de bits, com ara canviant i emmascarament . En canviar a curt int valor, el resultat és un valor int curt. Tanmateix, quan s'utilitzen operadors bit a bit com & i |, els valors int curts es promouen primer a int abans de realitzar l'operació.

    Rendiment

En alguns casos, utilitzar short int en lloc d'int pot millorar el rendiment, especialment en plataformes amb memòria o poder de processament limitats. Tanmateix, depèn de l'aplicació específica i del maquinari utilitzat i s'ha de provar cas per cas.

    Inicialització amb sufix

El llenguatge C proporciona un sufix per inicialitzar variables amb un tipus int curt. El sufix 's' o 'S' es pot utilitzar amb un valor constant per especificar explícitament una constant int curta. Per exemple:

 Short int x=10s;