logo

Vad är kort int i C?

I programmeringsspråk C, kort int är en datatyp som används för att lagra heltalsvärden. Det är en typmodifierare som kan användas med int datatyp för att skapa en mindre heltalsvariabel, med mindre minne än en vanlig int.

De kort int datatyp upptar 2 byte minne, vilket är hälften så stort som ett vanligt int datatyp , och kan representera heltalsvärden inom intervallet -32 768 till 32,767 .

Syntax för Short int

Rajinikanth

Syntaxen för att deklarera en kort int-variabel är följande:

 short int variable_name; 

Till exempel deklarerar och initierar följande kod en kort int variabel med namnet ålder:

 short int age = 25; 

De korta int-variablerna kan leda till fel om de inte används försiktigt. Det beror på att de har ett mindre värdeintervall än int variabler och kan svämma över om de tilldelas ett värde utanför deras intervall. Av denna anledning är det viktigt att se till att värdena som tilldelats en kort int-variabel ligger inom dess intervall.

Dessutom kan det korta nyckelordet användas istället för kort int att deklarera en variabel av denna typ. Därför är följande två deklarationer likvärdiga:

 short int variable_name; short variable_name; 

Några andra ytterligare detaljer om 'short int' datatyp är följande:

    Storlek och värdeintervall

Som tidigare nämnt upptar kort int 2 byte minne, vilket är hälften så stort som en vanlig int-datatyp. Storleken på en kort int är implementeringsdefinierad, vilket innebär att den kan variera beroende på vilken plattform och kompilator som används. Den är dock alltid garanterat mindre än en vanlig int.

När det gäller intervallet av värden kan en kort int lagra heltalsvärden inom intervallet -32 768 till 32,767 . Detta intervall kan bestämmas med hjälp av SHRT_MIN och SHRT_MAX konstanter, som definieras i gränser.h header-fil.

    Användning av 'short int'

Den korta int-datatypen används vanligtvis när minnesutrymme är ett problem, eller när intervallet av värden som lagras i variabeln ligger inom intervallet för en kort int. Några exempel på situationer där en kort int kan användas är:

  • I inbyggda system där minnet är begränsat.
  • När du skapar stora arrayer av heltal där minnesanvändningen behöver optimeras.
  • När intervallet för värden som lagras i variabeln är känt för att vara inom intervallet a kort int , såsom att lagra en persons ålder, som vanligtvis inte överstiger 100 år .
  • Typ Modifierare

De kort int datatyp är en typmodifierare, vilket innebär att den kan användas i kombination med andra datatyper för att skapa nya datatyper. Till exempel är följande giltiga deklarationer av variabler:

 short int x; short y; short int *ptr; short int arr[10]; 
    Implicita omvandlingar

När man utför aritmetiska eller jämförelseoperationer mellan variabler av olika datatyper kan C utföra implicita omvandlingar för att säkerställa att operationerna utförs korrekt. När du använder korta int-variabler är det viktigt att vara medveten om dessa konverteringar, eftersom de kan resultera i oväntat beteende. Tänk till exempel på följande kod:

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

Produktion:

matrisprogram i c-språk
 500 

Förklaring:

I den här koden, z i s tilldelas värdet av 500 , vilket är det korrekta resultatet av att lägga till x och och . Men om printf uttalande ändras till printf('%hu ', z), utgången blir 244 , vilket är resultatet av konvertering 500 till en osignerad kort int . Det händer eftersom %hu formatspecifikation används, vilket indikerar att värdet som skrivs ut ska vara en osignerad kort int.

    Befordran och degradering

När C utför operationer mellan variabler av olika datatyper, kan C utföra befordringar och degraderingar för att säkerställa att operationerna utförs korrekt. En befordran sker när en variabel av en mindre datatyp implicit omvandlas till en variabel av en större datatyp, medan en degradering sker när en variabel av en större datatyp implicit omvandlas till en variabel av en mindre datatyp. När du använder korta int-variabler är det viktigt att vara medveten om dessa befordringar och degraderingar, eftersom de kan påverka resultaten av aritmetiska och jämförelseoperationer.

    Standardinitiering

Om en kort int variabel deklareras utan att initieras, är dess värde odefinierat. Med andra ord kan det innehålla vilket värde som helst, inklusive ett negativt värde eller ett värde utanför intervallet för kort int . Därför är det en god praxis att alltid initialisera variabler till ett känt värde när de deklareras.

    Gjutning

Gjutning är processen att konvertera en variabel från en datatyp till en annan. När man gjuter en variabel till en kort int , trunkeras värdet på variabeln för att passa inom intervallet för kort int . Tänk till exempel på följande kod:

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

I den här koden är värdet på x är 500 , som ligger utanför intervallet för kort int. Men när x är gjuten till en kort int, värdet trunkeras för att passa inom intervallet för kort int , resulterar i och tilldelas värdet av -12 . När du castar variabler är det därför viktigt att se till att det resulterande värdet ligger inom intervallet för den datatyp som castas.

    Signerad

Som standard, kort int är en signerad datatyp , vilket innebär att den kan representera både positiva och negativa värden. Det går dock även att deklarera kort int som en osignerad datatyp, med hjälp av osignerad kort int eller osignerat kort nyckelord . En osignerad kort int kan endast representera icke-negativa värden, men dess intervall fördubblas till 0 till 65,535 .

multithreading i java
    Kompatibilitet

Eftersom kort int är en mindre datatyp än int , kan den implicit främjas till en int när den används i aritmetisk eller jämförelseoperationer med en int. Det betyder att a kort int kan användas varhelst en int förväntas, utan behov av en uttrycklig rollbesättning.

    Bärbarhet

Storleken av kort int kan variera beroende på vilken plattform och kompilator som används. För att säkerställa portabilitet av kod över olika plattformar, rekommenderas att använda stdint.h rubrikfil , som definierar heltalstyper med fast storlek med specifika bredder och tecken. Till exempel int16_t typ är en 16-bitars signerad heltalstyp , vilket motsvarar kort int på de flesta plattformar.

    Arrayindexering

När du deklarerar en array av korta int-värden , varje element i arrayen nås med hjälp av ett index. Indexet kan vara ett heltalsliteral eller en variabel av typen int. Men om indexet är en variabel av typen kort int , kommer den automatiskt att flyttas upp till en int innan den används för att komma åt arrayen. Till exempel:

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

kort int kan användas för bitmanipuleringsoperationer, som t.ex skiftande och maskering . Vid växling av a kort int värde, är resultatet ett kort int-värde. Men när du använder bitvisa operatorer som & och |, de korta int-värdena flyttas först upp till int innan operationen utförs.

    Prestanda

I vissa fall kan användning av kort int istället för int förbättra prestandan, särskilt på plattformar med begränsat minne eller processorkraft. Det beror dock på den specifika applikationen och hårdvaran som används och bör testas från fall till fall.

    Initiering med suffix

C-språket tillhandahåller ett suffix för att initiera variabler med en kort int-typ. Suffixet 's' eller 'S' kan användas med ett konstant värde för att explicit specificera en kort int-konstant. Till exempel:

 Short int x=10s;