logo

Co je short int v C?

V programovacím jazyce C, krátký int je datový typ používaný k ukládání celočíselných hodnot. Je to modifikátor typu, který lze použít s datový typ int vytvořit menší celočíselnou proměnnou využívající méně paměti než běžná int.

The krátký int datový typ zabírá 2 bajty paměti, která je poloviční oproti běžnému datový typ int , a může představovat celočíselné hodnoty v rozsahu -32,768 na 32,767 .

Syntaxe Short int

java kódování if else příkaz

Syntaxe pro deklaraci krátké proměnné int je následující:

 short int variable_name; 

Například následující kód deklaruje a inicializuje a krátký int proměnná s názvem věk:

 short int age = 25; 

Proměnné short int mohou vést k chybám, pokud nejsou používány opatrně. Je to proto, že mají menší rozsah hodnot než int proměnné a může přetéct, pokud je přiřazena hodnota mimo jejich rozsah. Z tohoto důvodu je důležité zajistit, aby hodnoty přiřazené krátké proměnné int byly v jejím rozsahu.

Kromě toho lze místo klíčového slova použít krátké klíčové slovo krátký int deklarovat proměnnou tohoto typu. Proto jsou následující dvě prohlášení ekvivalentní:

 short int variable_name; short variable_name; 

Některé další další podrobnosti o datový typ 'short int' jsou následující:

    Velikost a rozsah hodnot

Jak již bylo zmíněno, zabírá short int 2 bajty paměti, což je polovina velikosti běžného datového typu int. Velikost krátkého int je definována implementací, což znamená, že se může lišit v závislosti na používané platformě a kompilátoru. Vždy je však zaručeno, že bude menší než běžný int.

Pokud jde o rozsah hodnot, krátký int může ukládat celočíselné hodnoty v rozsahu -32,768 na 32,767 . Tento rozsah lze určit pomocí SHRT_MIN a SHRT_MAX konstanty, které jsou definovány v limity.h hlavičkový soubor.

    Použití „short int“

Datový typ short int se obvykle používá, když jde o paměťový prostor, nebo když je rozsah hodnot uložených v proměnné v rozsahu short int. Některé příklady situací, kdy lze použít krátký int:

  • Ve vestavěných systémech, kde je omezená paměť.
  • Při vytváření velkých polí celých čísel, kde je potřeba optimalizovat využití paměti.
  • Když je známo, že rozsah hodnot uložených v proměnné je v rozsahu a krátký int , jako je uložení věku osoby, který obvykle nepřekračuje 100 let .
  • Modifikátory typu

The datový typ short int je modifikátor typu, což znamená, že jej lze použít v kombinaci s jinými datovými typy k vytvoření nových datových typů. Například následující jsou platné deklarace proměnných:

 short int x; short y; short int *ptr; short int arr[10]; 
    Implicitní konverze

Při provádění aritmetických nebo porovnávacích operací mezi proměnnými různých datových typů může C provádět implicitní převody, aby se zajistilo správné provedení operací. Při použití proměnných short int je důležité si tyto převody uvědomit, protože mohou vést k neočekávanému chování. Zvažte například následující kód:

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

Výstup:

java ahoj svět příklad
 500 

Vysvětlení:

V tomto kódu z i s přiřazena hodnota 500 , což je správný výsledek přidání X a a . Pokud však printf výpis se změní na printf('%hu ', z), výstup bude 244 , což je výsledek konverze 500 na nepodepsaného krátký int . Stává se to proto, že %hu je použit specifikátor formátu, který udává, že tištěná hodnota by měla být krátký int bez znaménka.

    Povýšení a snížení

Při provádění operací mezi proměnnými různých datových typů může C provádět povýšení a snížení, aby bylo zajištěno, že operace budou provedeny správně. K povýšení dochází, když je proměnná menšího datového typu implicitně převedena na proměnnou většího datového typu, zatímco ke snížení úrovně dochází, když je proměnná většího datového typu implicitně převedena na proměnnou menšího datového typu. Při použití proměnných short int je důležité si být vědom těchto povýšení a snížení, protože mohou ovlivnit výsledky aritmetických a srovnávacích operací.

    Výchozí inicializace

Pokud short int proměnná je deklarován, aniž by byl inicializován, jeho hodnota není definována. Jinými slovy, může obsahovat jakoukoli hodnotu, včetně záporné hodnoty nebo hodnoty mimo rozsah krátký int . Proto je dobrým zvykem vždy inicializovat proměnné na známou hodnotu, když jsou deklarovány.

    Casting

Casting je proces převodu proměnné z jednoho datového typu na jiný. Při přetypování proměnné do a krátký int , je hodnota proměnné zkrácena, aby se vešla do rozsahu krátký int . Zvažte například následující kód:

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

V tomto kódu je hodnota X je 500 , což je mimo rozsah krátkých int. Nicméně, když X je obsazena do a krátký int, hodnota je zkrácena, aby se vešla do rozsahu krátký int , což má za následek a je přiřazena hodnota -12 . Proto je při přetypování proměnných důležité zajistit, aby výsledná hodnota byla v rozsahu přetypovaného datového typu.

    Podepsání

Ve výchozím stavu, krátký int je podepsaný datový typ , což znamená, že může představovat kladné i záporné hodnoty. Je však možné i prohlásit krátký int jako nepodepsaný datový typ pomocí unsigned short int nebo nepodepsané krátké klíčové slovo . Krátký int bez znaménka může představovat pouze nezáporné hodnoty, ale jeho rozsah je zdvojnásoben 0 na 65,535 .

Jejda koncept v Javě
    Kompatibilita

Od té doby krátký int je menší datový typ než int , může být implicitně povýšen na int, když je použit v aritmetický nebo srovnávací operace s int. Znamená to, že a krátký int lze použít kdekoli int se očekává, bez nutnosti explicitního obsazení.

    Přenosnost

Velikost krátký int se může lišit v závislosti na platformě a použitém kompilátoru. Pro zajištění přenositelnosti kódu mezi různými platformami se doporučuje používat hlavičkový soubor stdint.h , který definuje celočíselné typy s pevnou velikostí se specifickými šířkami a znaménkem. Například, typu int16_t je 16bitový typ celého čísla se znaménkem , což je ekvivalentní krátký int na většině platforem.

    Indexování pole

Při deklaraci pole krátké hodnoty int , ke každému prvku pole se přistupuje pomocí indexu. Index může být celočíselný literál nebo proměnná typu int. Pokud je však index proměnnou typu krátký int , bude automaticky povýšen na int před použitím pro přístup k poli. Napří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á manipulace

krátký int lze použít pro operace bitové manipulace, jako např řazení a maskování . Při řazení a krátký int hodnota, výsledkem je krátká int hodnota. Nicméně při použití bitových operátorů jako & a |, krátké hodnoty int jsou před provedením operace nejprve povýšeny na int.

    Výkon

V některých případech může použití short int místo int zlepšit výkon, zejména na platformách s omezenou pamětí nebo výkonem procesoru. To však závisí na konkrétní aplikaci a použitém hardwaru a mělo by být testováno případ od případu.

    Inicializace pomocí přípony

Jazyk C poskytuje příponu pro inicializaci proměnných s krátkým typem int. Přípona 's' nebo 'S' lze použít s konstantní hodnotou k explicitnímu zadání krátké konstanty int. Například:

 Short int x=10s;