logo

Što je short int u C-u?

U programskom jeziku C, kratki int je tip podataka koji se koristi za pohranu cjelobrojnih vrijednosti. To je modifikator tipa koji se može koristiti s int tip podataka za stvaranje manje cjelobrojne varijable, koristeći manje memorije od običnog int.

The kratki int vrsta podataka zauzima 2 bajta memorije, koja je upola manja od obične int tip podataka , i može predstavljati cjelobrojne vrijednosti u rasponu od -32.768 do 32,767 .

Sintaksa kratkih int

java kako nadjačati

Sintaksa za deklariranje varijable short int je sljedeća:

 short int variable_name; 

Na primjer, sljedeći kod deklarira i inicijalizira a kratki int varijabla pod nazivom dob:

 short int age = 25; 

Varijable short int mogu dovesti do pogrešaka ako se ne koriste pažljivo. To je zato što imaju manji raspon vrijednosti od int varijable i mogu se preliti ako im se dodijeli vrijednost izvan njihovog raspona. Iz tog razloga, važno je osigurati da su vrijednosti dodijeljene varijabli short int unutar njenog raspona.

Nadalje, ključna riječ short može se koristiti umjesto kratki int za deklaraciju varijable ovog tipa. Stoga su sljedeće dvije deklaracije ekvivalentne:

 short int variable_name; short variable_name; 

Neki drugi dodatni detalji o tip podataka 'short int' su kako slijedi:

    Veličina i raspon vrijednosti

Kao što je ranije spomenuto, short int zauzima 2 bajta memorije, što je upola manje od običnog int tipa podataka. Veličina short int definirana je implementacijom, što znači da može varirati ovisno o platformi i prevoditelju koji se koristi. Međutim, uvijek je zajamčeno da je manji od običnog int.

Što se tiče raspona vrijednosti, short int može pohraniti cjelobrojne vrijednosti u rasponu od -32.768 do 32,767 . Ovaj raspon se može odrediti pomoću SHRT_MIN i SHRT_MAX konstante, koje su definirane u granice.h datoteka zaglavlja.

    Upotreba 'short int'

Vrsta podataka short int obično se koristi kada je memorijski prostor problem ili kada je raspon vrijednosti pohranjenih u varijabli unutar raspona short int. Neki primjeri situacija u kojima se može koristiti kratki int uključuju:

  • U ugrađenim sustavima gdje je memorija ograničena.
  • Prilikom stvaranja velikih nizova cijelih brojeva gdje je potrebno optimizirati korištenje memorije.
  • Kada se zna da je raspon vrijednosti pohranjenih u varijabli unutar raspona od a kratki int , kao što je pohranjivanje dobi osobe, koja obično ne prelazi 100 godina .
  • Modifikatori tipa

The tip podataka short int je modifikator tipa, što znači da se može koristiti u kombinaciji s drugim tipovima podataka za stvaranje novih tipova podataka. Na primjer, sljedeće su valjane deklaracije varijabli:

 short int x; short y; short int *ptr; short int arr[10]; 
    Implicitne pretvorbe

Prilikom izvođenja aritmetičkih ili usporednih operacija između varijabli različitih tipova podataka, C može izvoditi implicitne pretvorbe kako bi osigurao da se operacije izvode ispravno. Kada koristite kratke int varijable, važno je biti svjestan ovih pretvorbi jer mogu rezultirati neočekivanim ponašanjem. Na primjer, razmotrite sljedeći kôd:

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

Izlaz:

 500 

Obrazloženje:

U ovom kodu, z i s dodijeljena vrijednost od 500 , što je točan rezultat zbrajanja x i i . Međutim, ako je printf izjava se mijenja u printf('%hu ', z), izlaz će biti 244 , što je rezultat pretvaranja 500 nepotpisanom kratki int . To se događa jer %hu koristi se specifikator formata, koji označava da vrijednost koja se ispisuje treba biti nepredpisani kratki int.

    Promaknuće i degradiranje

Prilikom izvođenja operacija između varijabli različitih tipova podataka, C može izvršiti unapređenja i degradacije kako bi osigurao da se operacije izvode ispravno. Do unapređenja dolazi kada se varijabla manjeg tipa podataka implicitno pretvori u varijablu većeg tipa podataka, dok se degradacija događa kada se varijabla većeg tipa podataka implicitno pretvori u varijablu manjeg tipa podataka. Kada koristite kratke int varijable, važno je biti svjestan ovih promaknuća i degradacija jer mogu utjecati na rezultate aritmetičkih i usporednih operacija.

    Zadana inicijalizacija

Ako a short int varijabla je deklariran bez inicijalizacije, njegova vrijednost je nedefinirana. Drugim riječima, može sadržavati bilo koju vrijednost, uključujući negativnu vrijednost ili vrijednost izvan raspona od kratki int . Stoga je dobra praksa uvijek inicijalizirati varijable na poznatu vrijednost kada se deklariraju.

    Lijevanje

Lijevanje je proces pretvaranja varijable iz jednog tipa podataka u drugi. Prilikom pretvaranja varijable u a kratki int , vrijednost varijable je skraćena kako bi stala unutar raspona od kratki int . Na primjer, razmotrite sljedeći kôd:

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

U ovom kodu, vrijednost x je 500 , koji je izvan raspona kratkih int. Međutim, kada x baci se na a kratki int, vrijednost je skraćena kako bi stala unutar raspona od kratki int , što je rezultiralo i dodijeljena vrijednost -12 . Stoga, kada se pretvaraju varijable, važno je osigurati da je rezultirajuća vrijednost unutar raspona tipa podataka koji se pretvara.

    Potpisanost

Prema zadanim postavkama kratki int je potpisani tip podataka , što znači da može predstavljati i pozitivne i negativne vrijednosti. No, moguće je i deklarirati kratki int kao nepotpisani tip podataka, koristeći nepotpisani kratki međ ili nepotpisana kratka ključna riječ . Unsigned short int može predstavljati samo ne-negativne vrijednosti, ali se njegov raspon udvostručuje na 0 do 65,535 .

java instanca od
    Kompatibilnost

Od kratki int je manji tip podataka od int , može se implicitno unaprijediti u int kada se koristi u aritmetika ili operacije usporedbe s int. To znači da a kratki int može se koristiti gdje god int se očekuje, bez potrebe za eksplicitnom glumačkom postavom.

    Prenosivost

Veličina od kratki int može varirati ovisno o platformi i kompajleru koji se koristi. Kako bi se osigurala prenosivost koda na različitim platformama, preporučuje se korištenje stdint.h datoteka zaglavlja , koji definira cjelobrojne tipove fiksne veličine s određenim širinama i predznakom. Na primjer, int16_t tip je 16-bitni cijeli broj s predznakom , što je ekvivalentno kratki int na većini platformi.

    Indeksiranje polja

Prilikom deklaracije niza od kratke int vrijednosti , svakom se elementu niza pristupa pomoću indeksa. Indeks može biti cjelobrojni literal ili varijabla tipa int. Međutim, ako je indeks varijabla tipa kratki int , bit će automatski promaknut u int prije nego što se koristi za pristup nizu. Na primjer:

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

kratki int može se koristiti za operacije manipulacije bitovima, kao što je pomicanje i maskiranje . Prilikom prebacivanja a kratki int vrijednost, rezultat je kratka int vrijednost. Međutim, kada koristite bitovne operatore poput & i |, kratke int vrijednosti se prvo promiču u int prije izvođenja operacije.

    Izvođenje

U nekim slučajevima korištenje kratkog inta umjesto inta može poboljšati performanse, posebno na platformama s ograničenom memorijom ili procesorskom snagom. Međutim, to ovisi o specifičnoj aplikaciji i hardveru koji se koristi i treba ga testirati od slučaja do slučaja.

    Inicijalizacija pomoću sufiksa

Jezik C daje sufiks za inicijalizaciju varijabli s tipom short int. Sufiks 's' ili 'S' može se koristiti s konstantnom vrijednošću za izričito navođenje konstante short int. Na primjer:

 Short int x=10s;