logo

Какво е short int в C?

В езика за програмиране C, кратко вътр е тип данни, използван за съхраняване на цели числа. Това е модификатор на тип, който може да се използва с int тип данни за създаване на по-малка целочислена променлива, използваща по-малко памет от обикновения int.

The кратко вътр тип данни заема 2 байта памет, която е наполовина по-малка от обикновената int тип данни , и може да представлява цели числа в диапазона от -32 768 да се 32,767 .

Синтаксис на Short int

латексова матрица

Синтаксисът за деклариране на променлива short int е както следва:

 short int variable_name; 

Например, следният код декларира и инициализира a кратко вътр променлива с име възраст:

 short int age = 25; 

Променливите short int могат да доведат до грешки, ако не се използват внимателно. Това е така, защото те имат по-малък диапазон от стойности от int променливи и може да се препълни, ако им бъде присвоена стойност извън техния диапазон. Поради тази причина е важно да се гарантира, че стойностите, присвоени на променлива short int, са в нейния диапазон.

Освен това ключовата дума short може да се използва вместо the кратко вътр за деклариране на променлива от този тип. Следователно следните две декларации са еквивалентни:

 short int variable_name; short variable_name; 

Някои други допълнителни подробности за тип данни 'short int' са както следва:

    Размер и диапазон от стойности

Както споменахме по-рано, short int заема 2 байта памет, което е половината от размера на обикновен int тип данни. Размерът на short int се дефинира от имплементацията, което означава, че може да варира в зависимост от използваната платформа и компилатор. Въпреки това винаги е гарантирано, че е по-малък от обикновен int.

По отношение на обхвата от стойности, short int може да съхранява цели числа в обхвата на -32 768 да се 32,767 . Този диапазон може да се определи с помощта на SHRT_MIN и SHRT_MAX константи, които са дефинирани в граници.ч заглавен файл.

    Използване на 'short int'

Типът данни short int обикновено се използва, когато има проблем с пространството в паметта или когато диапазонът от стойности, които се съхраняват в променливата, е в обхвата на short int. Някои примери за ситуации, в които може да се използва кратко int, включват:

  • Във вградени системи, където паметта е ограничена.
  • Когато създавате големи масиви от цели числа, където използването на паметта трябва да бъде оптимизирано.
  • Когато е известно, че диапазонът от стойности, които се съхраняват в променливата, е в диапазона от a кратко вътр , като например съхраняване на възрастта на човек, която обикновено не надвишава 100 години .
  • Типови модификатори

The тип данни short int е модификатор на тип, което означава, че може да се използва в комбинация с други типове данни за създаване на нови типове данни. Например, следните са валидни декларации на променливи:

 short int x; short y; short int *ptr; short int arr[10]; 
    Неявни преобразувания

При извършване на аритметични или сравнителни операции между променливи от различни типове данни, C може да извърши неявни преобразувания, за да гарантира, че операциите се изпълняват правилно. Когато използвате променливи short int, е важно да сте наясно с тези преобразувания, тъй като те могат да доведат до неочаквано поведение. Например, разгледайте следния код:

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

Изход:

 500 

Обяснение:

В този код, z i s е присвоена стойността на 500 , което е правилният резултат от добавянето х и и . Въпреки това, ако printf твърдението се променя на printf('%hu ', z), изходът ще бъде 244 , което е резултат от конвертирането 500 към неподписан кратко вътр . Това се случва, защото %hu се използва спецификатор на формат, който показва, че отпечатаната стойност трябва да бъде unsigned short int.

    Повишаване и понижаване

Когато извършва операции между променливи от различни типове данни, C може да извършва повишения и понижавания, за да гарантира, че операциите се изпълняват правилно. Повишение възниква, когато променлива от по-малък тип данни се преобразува имплицитно в променлива от по-голям тип данни, докато понижаване възниква, когато променлива от по-голям тип данни се преобразува имплицитно в променлива от по-малък тип данни. Когато използвате променливи short int, е важно да сте наясно с тези повишения и понижения, тъй като те могат да повлияят на резултатите от аритметичните и сравнителните операции.

    Инициализация по подразбиране

Ако short int променлива се декларира без да се инициализира, стойността му е недефинирана. С други думи, може да съдържа всякаква стойност, включително отрицателна стойност или стойност извън обхвата на кратко вътр . Поради това е добра практика винаги да се инициализират променливите до известна стойност, когато се декларират.

нулева проверка в java
    Кастинг

Кастинг е процес на преобразуване на променлива от един тип данни в друг. Когато прехвърляте променлива към a кратко вътр , стойността на променливата се съкращава, за да се побере в диапазона от кратко вътр . Например, разгледайте следния код:

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

В този код стойността на х е 500 , което е извън обхвата на късите вътр. Въпреки това, когато х е отлят на a кратко вътрешно, стойността е съкратена, за да се побере в диапазона от кратко вътр , в резултат на което и се присвоява стойността на -12 . Следователно, когато преобразувате променливи, е важно да се гарантира, че получената стойност е в обхвата на типа данни, който се преобразува.

    Подписаност

По подразбиране, кратко вътр е подписан тип данни , което означава, че може да представлява както положителни, така и отрицателни стойности. Възможно е обаче и деклариране кратко вътр като неподписан тип данни, използвайки unsigned short int или неподписана кратка ключова дума . Unsigned short int може да представлява само неотрицателни стойности, но диапазонът му се удвоява до 0 да се 65,535 .

двоично дърво за преминаване по пощата
    Съвместимост

От кратко вътр е по-малък тип данни от вътр , то може да бъде имплицитно повишено до int, когато се използва в аритметика или операции за сравнение с int. Това означава, че а кратко вътр може да се използва навсякъде вътр се очаква, без да е необходим изричен актьорски състав.

    Преносимост

Размерът на кратко вътр може да варира в зависимост от използваната платформа и компилатор. За да се гарантира преносимостта на кода между различни платформи, се препоръчва използването на stdint.h заглавен файл , който дефинира цели числа с фиксиран размер със специфични ширини и знак. Например, на тип int16_t е 16-битов целочислен тип със знак , което е еквивалентно на кратко вътр на повечето платформи.

    Индексиране на масиви

При деклариране на масив от short int стойности всеки елемент от масива е достъпен с помощта на индекс. Индексът може да бъде цял литерал или променлива от тип int. Ако обаче индексът е променлива от тип кратко вътр , той автоматично ще бъде повишен до an вътр преди да се използва за достъп до масива. Например:

 short int arr[10]; short int i = 5; short int val = arr[i]; // i is promoted to int before being used as an index 
    Манипулация на битове

кратко вътр може да се използва за битови операции, като напр преместване и маскиране . При смяна на a кратко вътр стойност, резултатът е кратка int стойност. Въпреки това, когато използвате побитови оператори като & и |, кратките int стойности първо се повишават до int преди операцията да бъде изпълнена.

    производителност

В някои случаи използването на short int вместо int може да подобри производителността, особено на платформи с ограничена памет или мощност на обработка. Това обаче зависи от конкретното приложение и използвания хардуер и трябва да се тества за всеки отделен случай.

    Инициализация с помощта на суфикс

Езикът C предоставя суфикс за инициализиране на променливи с тип short int. Наставката 'с' или 'С' може да се използва с постоянна стойност за изрично указване на константа short int. Например:

 Short int x=10s;