logo

Hva er kort int i C?

I programmeringsspråk C, kort int er en datatype som brukes til å lagre heltallsverdier. Det er en typemodifikator som kan brukes med int datatype for å lage en mindre heltallsvariabel ved å bruke mindre minne enn en vanlig int.

De kort int datatypen opptar 2 byte minne, som er halvparten så stor som en vanlig int datatype , og kan representere heltallsverdier i området på -32.768 til 32.767 .

Syntaks for Short int

j e s t

Syntaksen for å deklarere en kort int-variabel er som følger:

 short int variable_name; 

For eksempel erklærer og initialiserer følgende kode en kort int variabel navngitt alder:

 short int age = 25; 

De korte int-variablene kan føre til feil hvis de ikke brukes forsiktig. Det er fordi de har et mindre verdiområde enn int variabler og kan flyte over hvis de tildeles en verdi utenfor området. Av denne grunn er det viktig å sikre at verdiene som er tilordnet en kort int-variabel er innenfor området.

I tillegg kan det korte søkeordet brukes i stedet for kort int å erklære en variabel av denne typen. Følgende to erklæringer er derfor likeverdige:

 short int variable_name; short variable_name; 

Noen andre tilleggsdetaljer om 'short int' datatype er som følger:

    Størrelse og verdiområde

Som nevnt tidligere opptar kort int 2 byte minne, som er halvparten så stor som en vanlig int-datatype. Størrelsen på en kort int er implementeringsdefinert, noe som betyr at den kan variere avhengig av plattformen og kompilatoren som brukes. Den er imidlertid alltid garantert mindre enn en vanlig int.

Når det gjelder verdiområdet, kan en kort int lagre heltallsverdier i området på -32.768 til 32.767 . Dette området kan bestemmes ved hjelp av SHRT_MIN og SHRT_MAX konstanter, som er definert i grenser.h header-fil.

    Bruk av 'short int'

Den korte int-datatypen brukes vanligvis når minneplass er et problem, eller når rekkevidden av verdier som lagres i variabelen er innenfor området til en kort int. Noen eksempler på situasjoner der en kort int kan brukes inkluderer:

  • I innebygde systemer der minnet er begrenset.
  • Når du lager store arrayer av heltall der minnebruken må optimaliseres.
  • Når området av verdier som lagres i variabelen er kjent for å være innenfor området til a kort int , for eksempel å lagre alderen til en person, som vanligvis ikke overskrider 100 år .
  • Type Modifikatorer

De kort int datatype er en typemodifikator, som betyr at den kan brukes i kombinasjon med andre datatyper for å lage nye datatyper. For eksempel er følgende gyldige deklarasjoner av variabler:

 short int x; short y; short int *ptr; short int arr[10]; 
    Implisitte konverteringer

Når du utfører aritmetiske eller sammenligningsoperasjoner mellom variabler av forskjellige datatyper, kan C utføre implisitte konverteringer for å sikre at operasjonene utføres riktig. Når du bruker korte int-variabler, er det viktig å være oppmerksom på disse konverteringene, da de kan resultere i uventet oppførsel. Tenk for eksempel på følgende kode:

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

Produksjon:

 500 

Forklaring:

I denne koden, z i s tildelt verdien av 500 , som er det riktige resultatet av å legge til x og og . Imidlertid, hvis printf uttalelse endres til printf('%hu ', z), utgangen vil være 244 , som er resultatet av konvertering 500 til en usignert kort int . Det skjer fordi %hu formatspesifikasjoner brukes, som indikerer at verdien som skrives ut skal være en usignert kort int.

    Forfremmelse og degradering

Når du utfører operasjoner mellom variabler av forskjellige datatyper, kan C utføre forfremmelser og degraderinger for å sikre at operasjonene utføres riktig. En forfremmelse skjer når en variabel av en mindre datatype implisitt konverteres til en variabel av en større datatype, mens en degradering skjer når en variabel av en større datatype implisitt konverteres til en variabel av en mindre datatype. Når du bruker korte int-variabler, er det viktig å være klar over disse forfremmelsene og degraderingene, da de kan påvirke resultatene av aritmetiske og sammenligningsoperasjoner.

finn min iphone android
    Standard initialisering

Hvis en kort int variabel er deklarert uten å bli initialisert, er verdien udefinert. Med andre ord kan den inneholde en hvilken som helst verdi, inkludert en negativ verdi eller en verdi utenfor området til kort int . Derfor er det en god praksis å alltid initialisere variabler til en kjent verdi når de er deklarert.

    Casting

Casting er prosessen med å konvertere en variabel fra en datatype til en annen. Når du kaster en variabel til en kort int , er verdien av variabelen avkortet for å passe innenfor området på kort int . Tenk for eksempel på følgende kode:

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

I denne koden er verdien av x er 500 , som er utenfor området for kort int. Men når x er støpt til en kort int, verdien avkortes for å passe innenfor området på kort int , resulterer i og blir tildelt verdien av -12 . Derfor, når du kaster variabler, er det viktig å sørge for at den resulterende verdien er innenfor rekkevidden til datatypen som kastes.

    Signerthet

Som standard, kort int er en signert datatype , som betyr at den kan representere både positive og negative verdier. Det er imidlertid også mulig å deklarere kort int som en usignert datatype, ved å bruke usignert kort int eller usignert kort søkeord . En usignert kort int kan bare representere ikke-negative verdier, men rekkevidden dobles til 0 til 65.535 .

c programmeringseksempelprogrammer
    Kompatibilitet

Siden kort int er en mindre datatype enn int , kan den implisitt promoteres til en int når den brukes i aritmetikk eller sammenligningsoperasjoner med en int. Det betyr at a kort int kan brukes overalt hvor en int forventes, uten behov for en eksplisitt rollebesetning.

    Bærbarhet

Størrelsen til kort int kan variere avhengig av plattformen og kompilatoren som brukes. For å sikre portabilitet av kode på tvers av forskjellige plattformer, anbefales det å bruke stdint.h header-fil , som definerer heltallstyper med fast størrelse med spesifikke bredder og fortegn. For eksempel int16_t type er en 16-bits signerte heltallstype , som tilsvarer kort int på de fleste plattformer.

    Array-indeksering

Når du erklærer en rekke av korte int-verdier , får hvert element i matrisen tilgang ved hjelp av en indeks. Indeksen kan være et heltall eller en variabel av typen int. Men hvis indeksen er en variabel av typen kort int , vil den automatisk bli oppgradert til en int før den brukes til å få tilgang til matrisen. For eksempel:

 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 manipulasjon

kort int kan brukes til bitmanipulasjonsoperasjoner, som f.eks skiftende og maskering . Når du skifter a kort int verdi, er resultatet en kort int-verdi. Men når du bruker bitvise operatører som & og |, de korte int-verdiene blir først oppgradert til int før operasjonen utføres.

    Opptreden

I noen tilfeller kan bruk av kort int i stedet for int forbedre ytelsen, spesielt på plattformer med begrenset minne eller prosessorkraft. Det avhenger imidlertid av den spesifikke applikasjonen og maskinvaren som brukes, og bør testes fra sak til sak.

    Initialisering ved hjelp av suffiks

C-språket gir et suffiks for å initialisere variabler med en kort int-type. Suffikset 's' eller 'S' kan brukes med en konstant verdi for å spesifisere en kort int-konstant eksplisitt. For eksempel:

 Short int x=10s;