logo

Čo je short int v C?

V programovacom jazyku C, krátky int je dátový typ používaný na ukladanie celočíselných hodnôt. Je to modifikátor typu, ktorý možno použiť s typ údajov int na vytvorenie menšej celočíselnej premennej, ktorá využíva menej pamäte ako bežná int.

The krátky int dátový typ zaberá 2 bajty pamäte, ktorá je polovičná oproti bežnej typ údajov int a môže predstavovať celočíselné hodnoty v rozsahu -32 768 do 32,767 .

Syntax skratky int

príklad java mapy

Syntax na deklarovanie krátkej premennej int je nasledovná:

 short int variable_name; 

Napríklad nasledujúci kód deklaruje a inicializuje a krátky int premenná s názvom vek:

 short int age = 25; 

Premenné short int môžu viesť k chybám, ak sa nepoužívajú opatrne. Je to preto, že majú menší rozsah hodnôt ako int premenné a môžu pretekať, ak je priradená hodnota mimo ich rozsahu. Z tohto dôvodu je dôležité zabezpečiť, aby hodnoty priradené krátkej premennej int boli v jej rozsahu.

Okrem toho je možné namiesto kľúčového slova použiť krátke kľúčové slovo krátky int deklarovať premennú tohto typu. Preto sú nasledujúce dve vyhlásenia ekvivalentné:

 short int variable_name; short variable_name; 

Niektoré ďalšie ďalšie podrobnosti o dátový typ 'short int' sú nasledujúce:

    Veľkosť a rozsah hodnôt

Ako už bolo spomenuté, krátky int zaberá 2 bajty pamäte, čo je polovica veľkosti bežného dátového typu int. Veľkosť krátkeho int je definovaná implementáciou, čo znamená, že sa môže líšiť v závislosti od používanej platformy a kompilátora. Vždy je však zaručene menší ako bežný int.

Pokiaľ ide o rozsah hodnôt, krátky int môže uložiť celočíselné hodnoty v rozsahu -32 768 do 32,767 . Tento rozsah je možné určiť pomocou SHRT_MIN a SHRT_MAX konštanty, ktoré sú definované v limity.h hlavičkový súbor.

java reťazec v porovnaní s
    Použitie „short int“

Dátový typ short int sa zvyčajne používa, keď ide o pamäťový priestor, alebo keď je rozsah hodnôt uložených v premennej v rozsahu short int. Niektoré príklady situácií, v ktorých možno použiť krátky int, zahŕňajú:

  • Vo vstavaných systémoch, kde je obmedzená pamäť.
  • Pri vytváraní veľkých polí celých čísel, kde je potrebné optimalizovať využitie pamäte.
  • Keď je známe, že rozsah hodnôt uložených v premennej je v rozsahu a krátky int , ako je uloženie veku osoby, ktorá zvyčajne nepresahuje 100 rokov .
  • Modifikátory typu

The krátky int dátový typ je modifikátor typu, čo znamená, že ho možno použiť v kombinácii s inými typmi údajov na vytvorenie nových typov údajov. Napríklad nasledujúce sú platné deklarácie premenných:

 short int x; short y; short int *ptr; short int arr[10]; 
    Implicitné konverzie

Pri vykonávaní aritmetických alebo porovnávacích operácií medzi premennými rôznych dátových typov môže C vykonávať implicitné konverzie, aby sa zabezpečilo, že operácie sa vykonajú správne. Pri používaní premenných short int je dôležité si uvedomiť tieto konverzie, pretože môžu viesť k neočakávanému správaniu. Zvážte napríklad nasledujúci kód:

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

Výkon:

 500 

Vysvetlenie:

V tomto kóde z i s priradená hodnota 500 , čo je správny výsledok pridania X a a . Avšak, ak printf vyhlásenie sa zmení na printf('%hu ', z), výstup bude 244 , ktorý je výsledkom konverzie 500 nepodpísanému krátky int . Stáva sa to preto, že %hu používa sa špecifikátor formátu, ktorý udáva, že vytlačená hodnota by mala byť krátky int bez znamienka.

    Povýšenie a zníženie úrovne

Pri vykonávaní operácií medzi premennými rôznych dátových typov môže C vykonávať povýšenie a zníženie úrovne, aby sa zabezpečilo, že operácie budú vykonané správne. Povýšenie nastane, keď sa premenná menšieho dátového typu implicitne skonvertuje na premennú väčšieho dátového typu, zatiaľ čo zníženie nastane, keď sa premenná väčšieho dátového typu implicitne skonvertuje na premennú menšieho dátového typu. Pri používaní premenných short int je dôležité si uvedomiť tieto povýšenia a zníženia, pretože môžu ovplyvniť výsledky aritmetických a porovnávacích operácií.

    Predvolená inicializácia

Ak short int premenná je deklarovaný bez inicializácie, jeho hodnota nie je definovaná. Inými slovami, môže obsahovať akúkoľvek hodnotu, vrátane zápornej hodnoty alebo hodnoty mimo rozsahu krátky int . Preto je dobrou praxou vždy inicializovať premenné na známu hodnotu, keď sú deklarované.

    Casting

Casting je proces konverzie premennej z jedného dátového typu na iný. Pri odovzdaní premennej do a krátky int , hodnota premennej je skrátená, aby sa zmestila do rozsahu krátky int . Zvážte napríklad nasledujúci kód:

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

V tomto kóde je hodnota X je 500 , čo je mimo rozsahu krátkych int. Avšak, kedy X je odliaty do a krátky int, hodnota je skrátená, aby sa zmestila do rozsahu krátky int , vyúsťujúce do a priradená hodnota -12 . Preto je pri pretypovaní premenných dôležité zabezpečiť, aby výsledná hodnota bola v rozsahu pretypovaného dátového typu.

    Podpisovosť

Predvolene, krátky int je a podpísaný dátový typ , čo znamená, že môže predstavovať kladné aj záporné hodnoty. Dá sa však aj vyhlásiť krátky int ako nepodpísaný dátový typ pomocou unsigned short int alebo krátke kľúčové slovo bez znamienka . Krátky int bez znamienka môže predstavovať iba nezáporné hodnoty, ale jeho rozsah sa zdvojnásobí 0 do 65,535 .

nahradenie reťazca v jazyku Java
    Kompatibilita

Od r krátky int je menší dátový typ ako int , môže byť implicitne povýšený na int pri použití v aritmetika alebo porovnávacie operácie s int. Znamená to, že a krátky int možno použiť kdekoľvek int sa očakáva, bez potreby explicitného obsadenia.

    Prenosnosť

Veľkosť krátky int sa môže líšiť v závislosti od používanej platformy a kompilátora. Na zabezpečenie prenosnosti kódu medzi rôznymi platformami sa odporúča použiť hlavičkový súbor stdint.h , ktorý definuje celočíselné typy s pevnou veľkosťou so špecifickými šírkami a znamienkom. Napríklad, typu int16_t je a 16-bitový typ celého čísla so znamienkom , čo je ekvivalentné krátky int na väčšine platforiem.

    Indexovanie poľa

Pri deklarovaní poľa krátke hodnoty int , ku každému prvku poľa sa pristupuje pomocou indexu. Index môže byť celočíselný literál alebo premenná typu int. Ak je však index premennou typu krátky int , bude automaticky povýšený na int pred použitím na prístup k poli. Napríklad:

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

krátky int možno použiť na operácie bitovej manipulácie, ako napr prehadzovanie a maskovanie . Pri radení a krátky int hodnota, výsledkom je krátka int hodnota. Avšak pri použití bitových operátorov ako & a |, krátke hodnoty int sa najskôr povýšia na int pred vykonaním operácie.

    Výkon

V niektorých prípadoch môže použitie krátkeho int namiesto int zlepšiť výkon, najmä na platformách s obmedzenou pamäťou alebo výkonom spracovania. Závisí to však od konkrétnej aplikácie a použitého hardvéru a malo by sa testovať od prípadu k prípadu.

    Inicializácia pomocou prípony

Jazyk C poskytuje príponu na inicializáciu premenných s krátkym typom int. Prípona 's' alebo 'S' možno použiť s konštantnou hodnotou na explicitné určenie krátkej int konštanty. Napríklad:

 Short int x=10s;