logo

Hvad er kort int i C?

I programmeringssprog C, kort int er en datatype, der bruges til at gemme heltalsværdier. Det er en typemodifikator, der kan bruges sammen med int datatype at oprette en mindre heltalsvariabel, der bruger mindre hukommelse end en almindelig int.

Det kort int datatype optager 2 bytes hukommelse, som er halvt så stor som en almindelig int datatype , og kan repræsentere heltalsværdier i intervallet af -32.768 til 32.767 .

Syntaks for Short int

git push-kommando

Syntaksen til at erklære 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 navngivet alder:

 short int age = 25; 

De korte int-variabler kan føre til fejl, hvis de ikke bruges omhyggeligt. Det er fordi de har et mindre værdiområde end int variabler og kan løbe over, hvis de tildeles en værdi uden for deres område. Af denne grund er det vigtigt at sikre, at de værdier, der er tildelt en kort int-variabel, er inden for dens område.

Derudover kan det korte søgeord bruges i stedet for kort int at erklære en variabel af denne type. Derfor er følgende to erklæringer ækvivalente:

 short int variable_name; short variable_name; 

Nogle andre yderligere detaljer om 'short int' datatype er som følgende:

    Størrelse og rækkevidde af værdier

Som tidligere nævnt optager kort int 2 bytes hukommelse, som er halvt så stor som en almindelig int-datatype. Størrelsen af ​​en kort int er implementeringsdefineret, hvilket betyder, at den kan variere afhængigt af platformen og compileren, der bruges. Den er dog altid garanteret mindre end en almindelig int.

Med hensyn til intervallet af værdier kan en kort int gemme heltalsværdier i intervallet af -32.768 til 32.767 . Dette interval kan bestemmes ved hjælp af SHRT_MIN og SHRT_MAX konstanter, som er defineret i grænser.h header-fil.

    Brug af 'short int'

Den korte int-datatype bruges typisk, når hukommelsesplads er et problem, eller når rækken af ​​værdier, der er gemt i variablen, er inden for området for en kort int. Nogle eksempler på situationer, hvor en kort int kan bruges, omfatter:

  • I indlejrede systemer, hvor hukommelsen er begrænset.
  • Når du opretter store arrays af heltal, hvor hukommelsesforbruget skal optimeres.
  • Når intervallet af værdier, der er lagret i variablen, vides at være inden for intervallet af a kort int , såsom opbevaring af en persons alder, som typisk ikke overstiger 100 år .
  • Typemodifikatorer

Det kort int datatype er en typemodifikator, hvilket betyder, at den kan bruges i kombination med andre datatyper til at skabe nye datatyper. For eksempel er følgende gyldige deklarationer af variabler:

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

Når der udføres aritmetiske eller sammenligningsoperationer mellem variabler af forskellige datatyper, kan C udføre implicitte konverteringer for at sikre, at operationerne udføres korrekt. Når du bruger korte int-variabler, er det vigtigt at være opmærksom på disse konverteringer, da de kan resultere i uventet adfærd. Overvej f.eks. følgende kode:

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

Produktion:

 500 

Forklaring:

I denne kode, z i s tildelt værdien af 500 , hvilket er det korrekte resultat af tilføjelse x og og . Men hvis printf erklæring ændres til printf('%hu ', z), outputtet bliver 244 , som er resultatet af konvertering 500 til en usigneret kort int . Det sker, fordi %hu formatspecifikation bruges, hvilket angiver, at værdien, der udskrives, skal være en kort int uden fortegn.

    Forfremmelse og degradering

Når C udfører operationer mellem variabler af forskellige datatyper, kan C udføre forfremmelser og degraderinger for at sikre, at operationerne udføres korrekt. En forfremmelse opstår, når en variabel af en mindre datatype implicit konverteres til en variabel af en større datatype, mens en degradering sker, når en variabel af en større datatype implicit konverteres til en variabel af en mindre datatype. Når du bruger korte int-variabler, er det vigtigt at være opmærksom på disse forfremmelser og degraderinger, da de kan påvirke resultaterne af aritmetiske og sammenligningsoperationer.

find min iphone android
    Standardinitialisering

Hvis en kort int variabel er erklæret uden at blive initialiseret, er dens værdi udefineret. Med andre ord kan den indeholde en hvilken som helst værdi, inklusive en negativ værdi eller en værdi uden for området for kort int . Derfor er det en god praksis altid at initialisere variabler til en kendt værdi, når de erklæres.

    Casting

Casting er processen med at konvertere en variabel fra en datatype til en anden. Når du støber en variabel til en kort int , afkortes værdien af ​​variablen for at passe inden for området på kort int . Overvej f.eks. følgende kode:

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

I denne kode er værdien af x er 500 , som er uden for rækkevidden af ​​kort int. Men hvornår x er støbt til en kort int, værdien afkortes for at passe inden for området på kort int , resulterende i og bliver tildelt værdien af -12 . Når du caster variabler, er det derfor vigtigt at sikre, at den resulterende værdi er inden for intervallet for den datatype, der castes.

    Undertegnelse

Som standard, kort int er en underskrevet datatype , hvilket betyder, at den kan repræsentere både positive og negative værdier. Det er dog også muligt at deklarere kort int som en usigneret datatype ved hjælp af usigneret kort int eller usigneret kort søgeord . En kort int uden fortegn kan kun repræsentere ikke-negative værdier, men dens rækkevidde fordobles til 0 til 65.535 .

c programmeringseksempler på programmer
    Kompatibilitet

Siden kort int er en mindre datatype end int , kan den implicit promoveres til en int, når den bruges i aritmetik eller sammenligningsoperationer med en int. Det betyder, at en kort int kan bruges overalt hvor en int forventes, uden behov for en eksplicit rollebesætning.

    Bærbarhed

Størrelsen af kort int kan variere afhængigt af platformen og compileren, der bruges. For at sikre portabilitet af kode på tværs af forskellige platforme, anbefales det at bruge stdint.h header-fil , som definerer heltaltyper i fast størrelse med specifikke bredder og fortegn. For eksempel int16_t type er en 16-bit signeret heltalstype , hvilket svarer til kort int på de fleste platforme.

    Array-indeksering

Når de erklærer en række af korte int-værdier , tilgås hvert element i arrayet ved hjælp af et indeks. Indekset kan være et heltal eller en variabel af typen int. Men hvis indekset er en variabel af typen kort int , vil den automatisk blive forfremmet til en int før de bruges til at få adgang til arrayet. 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 manipulation

kort int kan bruges til bitmanipulationsoperationer, som f.eks skiftende og maskering . Når du skifter a kort int værdi, er resultatet en kort int-værdi. Men når du bruger bitvise operatorer som & og |, de korte int-værdier forfremmes først til int, før operationen udføres.

    Ydeevne

I nogle tilfælde kan brug af kort int i stedet for int forbedre ydeevnen, især på platforme med begrænset hukommelse eller processorkraft. Det afhænger dog af den specifikke applikation og den anvendte hardware og bør testes fra sag til sag.

    Initialisering ved hjælp af suffiks

C-sprog giver et suffiks for at initialisere variabler med en kort int-type. Endelsen 's' eller 'S' kan bruges med en konstant værdi til eksplicit at angive en kort int-konstant. For eksempel:

 Short int x=10s;