logo

Mi a rövid int C-ben?

C programozási nyelvben, rövid int egész értékek tárolására használt adattípus. Ez egy típusmódosító, amely a int adattípus kisebb egész változó létrehozásához, kevesebb memóriát használva, mint egy normál int.

A rövid int adattípust foglal el 2 bájt memória, ami fele akkora, mint egy normál int adattípus , és a tartományban lévő egész értékeket képviselheti -32 768 nak nek 32,767 .

A Short int. szintaxisa

Neena Gupta

A rövid int változó deklarálásának szintaxisa a következő:

 short int variable_name; 

Például a következő kód deklarálja és inicializálja a rövid int életkor nevű változó:

 short int age = 25; 

A rövid int változók hibákhoz vezethetnek, ha nem óvatosan használják őket. Ez azért van, mert kisebb értéktartományuk van, mint int változók és túlcsordulhat, ha a tartományukon kívül eső értéket rendel hozzá. Emiatt fontos gondoskodni arról, hogy a rövid int változóhoz rendelt értékek a tartományon belül legyenek.

Ezenkívül a rövid kulcsszó is használható a rövid int hogy deklaráljunk egy ilyen típusú változót. Ezért a következő két nyilatkozat egyenértékű:

 short int variable_name; short variable_name; 

Néhány további részlet a 'short int' adattípus a következő:

    Méret és értéktartomány

Mint korábban említettük, rövid int foglal el 2 bájt memória, ami fele akkora, mint egy normál int adattípus. A rövid int mérete megvalósítás által meghatározott, ami azt jelenti, hogy a használt platformtól és fordítótól függően változhat. Azonban mindig garantáltan kisebb lesz, mint egy rendes int.

Az értéktartományt tekintve egy rövid int egész értékeket tárolhat a tartományban -32 768 nak nek 32,767 . Ez a tartomány a következővel határozható meg SHRT_MIN és SHRT_MAX konstansok, amelyeket a határok.h fejléc fájl.

    'rövid int' használata

A short int adattípust általában akkor használják, ha memóriaterületről van szó, vagy ha a változóban tárolt értékek tartománya egy rövid int tartományon belül van. Néhány példa olyan helyzetekre, ahol rövid int használható:

  • Beágyazott rendszerekben, ahol korlátozott a memória.
  • Ha egész számokból álló nagy tömböket hoz létre, ahol a memóriahasználatot optimalizálni kell.
  • Ha a változóban tárolt értékek tartománya az a tartományon belül van rövid int , mint például egy személy életkorának tárolása, amely jellemzően nem haladja meg 100 év .
  • Típusmódosítók

A rövid int adattípus egy típusmódosító, ami azt jelenti, hogy más adattípusokkal együtt használható új adattípusok létrehozására. Például a következők érvényesek a változók deklarációi:

 short int x; short y; short int *ptr; short int arr[10]; 
    Implicit konverziók

A különböző adattípusú változók közötti aritmetikai vagy összehasonlító műveletek végrehajtásakor a C implicit konverziókat hajthat végre a műveletek helyes végrehajtásának biztosítása érdekében. Ha rövid int változókat használ, fontos, hogy tisztában legyen ezekkel a konverziókkal, mivel ezek váratlan viselkedést eredményezhetnek. Vegyük például a következő kódot:

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

Kimenet:

 500 

Magyarázat:

Ebben a kódban z i s értékét rendelte hozzá 500 , ami a hozzáadás helyes eredménye x és és . Ha azonban a printf kijelentés erre módosul printf('%hu ', z), lesz a kimenet 244 , ami az átalakítás eredménye 500 egy aláíratlannak rövid int . Ez azért történik, mert a %HU formátumspecifikátort használunk, ami azt jelzi, hogy a nyomtatandó érték egy előjel nélküli rövid int.

    Előléptetés és lefokozás

Különböző adattípusú változók közötti műveletek végrehajtásakor a C előléptetéseket és lefokozásokat hajthat végre a műveletek helyes végrehajtásának biztosítása érdekében. Előléptetés akkor következik be, amikor egy kisebb adattípusú változót implicit módon egy nagyobb adattípusú változóvá alakítanak át, míg a lefokozás akkor következik be, amikor egy nagyobb adattípusú változót implicit módon egy kisebb adattípusú változóvá alakítanak át. A rövid int változók használatakor fontos tisztában lenni ezekkel az előléptetésekkel és lefokozásokkal, mivel ezek befolyásolhatják az aritmetikai és összehasonlító műveletek eredményeit.

    Alapértelmezett inicializálás

Ha egy rövid int változó inicializálás nélkül deklarálódik, értéke definiálatlan. Más szavakkal, bármilyen értéket tartalmazhat, beleértve a negatív értéket vagy a tartományon kívül eső értéket is rövid int . Ezért célszerű a változókat deklaráláskor mindig ismert értékre inicializálni.

    Öntvény

Öntvény egy változó egyik adattípusról a másikra konvertálásának folyamata. Amikor egy változót a rövid int , a változó értéke csonkolva illeszkedik a tartományba rövid int . Vegyük például a következő kódot:

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

Ebben a kódban az értéke x van 500 , amely kívül esik a rövid int. Azonban mikor x rá van öntve a rövid int, az érték csonkolva illeszkedik a tartományba rövid int , ami azt eredményezi és értékét rendelik hozzá -12 . Ezért a változók öntésekor fontos ügyelni arra, hogy az eredményül kapott érték az öntendő adattípus tartományán belül legyen.

    Aláírás

Alapértelmezés szerint, rövid int egy aláírt adattípus , ami azt jelenti, hogy pozitív és negatív értékeket is képviselhet. De lehet nyilatkozni is rövid int előjel nélküli adattípusként, a aláíratlan rövid int vagy előjel nélküli rövid kulcsszó . Egy előjel nélküli rövid int csak nem negatív értékeket jelenthet, de tartománya megduplázódik 0 nak nek 65 535 .

java kapcsolat
    Kompatibilitás

Mivel rövid int kisebb adattípus, mint int , akkor implicit módon int-vé léptethető elő, ha in számtan vagy összehasonlítási műveletek egy int. Ez azt jelenti, hogy a rövid int bárhol használható int elvárás, kifejezett szereposztás nélkül.

    Hordozhatóság

A mérete rövid int a használt platformtól és fordítótól függően változhat. A kód hordozhatóságának biztosítása érdekében a különböző platformokon ajánlott a stdint.h fejlécfájlt , amely meghatározott méretű, meghatározott szélességű és előjelű egész számtípusokat határoz meg. Például a int16_t típusú egy 16 bites előjeles egész típus , ami egyenértékű rövid int a legtöbb platformon.

    Tömb indexelés

Egy tömb deklarálásakor rövid int értékek , a tömb minden eleme egy index segítségével érhető el. Az index lehet egész literál vagy int típusú változó. Ha azonban az index egy típusú változó rövid int , akkor automatikusan előléptetik an int mielőtt a tömb eléréséhez használnánk. Például:

 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 manipuláció

rövid int bitmanipulációs műveletekre használható, mint pl váltó és maszkolás . Váltáskor a rövid int érték, az eredmény egy rövid int érték. Azonban bitenkénti operátorok használatakor, mint pl & és |, a rövid int értékek először int-be kerülnek a művelet végrehajtása előtt.

    Teljesítmény

Egyes esetekben a rövid int használata az int helyett javíthatja a teljesítményt, különösen korlátozott memória- vagy feldolgozási teljesítményű platformokon. Ez azonban az adott alkalmazástól és a használt hardvertől függ, és eseti alapon kell tesztelni.

    Inicializálás utótag használatával

A C nyelv egy utótagot biztosít a rövid int típusú változók inicializálásához. Az utótag 's' vagy 'S' konstans értékkel használható egy rövid int állandó explicit megadására. Például:

 Short int x=10s;