logo

Шта је кратки инт у Ц?

У програмском језику Ц, кратки инт је тип података који се користи за чување целобројних вредности. То је модификатор типа који се може користити са инт тип података да креирате мању целобројну променљиву, користећи мање меморије од обичног инт.

Тхе кратки инт тип података заузима 2 бајта меморије, што је упола мање од обичне инт тип података , и може представљати целобројне вредности у опсегу од -32,768 до 32,767 .

Синтакса Схорт инт

јава доубле то стринг

Синтакса за декларисање кратке инт променљиве је следећа:

 short int variable_name; 

На пример, следећи код декларише и иницијализује а кратки инт променљива под називом старост:

 short int age = 25; 

Кратке инт променљиве могу довести до грешака ако се не користе пажљиво. То је зато што имају мањи опсег вредности од инт променљиве и могу се прелити ако им се додели вредност изван њиховог опсега. Из тог разлога, важно је осигурати да су вредности додељене краткој инт променљивој унутар њеног опсега.

Поред тога, кратка кључна реч се може користити уместо кратки инт да се декларише променљива овог типа. Према томе, следеће две декларације су еквивалентне:

 short int variable_name; short variable_name; 

Неки други додатни детаљи о 'схорт инт' тип података су следећи:

    Величина и опсег вредности

Као што је раније поменуто, кратки инт заузима 2 бајта меморије, што је упола мање од обичног типа података типа инт. Величина кратког инт-а је дефинисана имплементацијом, што значи да може да варира у зависности од платформе и компајлера који се користе. Међутим, увек је загарантовано да је мањи од обичног инт.

У смислу опсега вредности, кратки инт може да складишти целобројне вредности у опсегу од -32,768 до 32,767 . Овај опсег се може одредити помоћу СХРТ_МИН и СХРТ_МАКС константе, које су дефинисане у границе.х датотека заглавља.

претворити стринг у енум
    Употреба 'схорт инт'

Тип података схорт инт се обично користи када је меморијски простор забринут или када је опсег вредности које се чувају у променљивој унутар опсега кратког инт. Неки примери ситуација у којима се може користити кратки инт укључују:

  • У уграђеним системима где је меморија ограничена.
  • Приликом креирања великих низова целих бројева где коришћење меморије треба да се оптимизује.
  • Када се зна да је опсег вредности које се чувају у променљивој унутар опсега а кратки инт , као што је чување старости особе која обично не прелази 100 година .
  • Модификатори типа

Тхе кратки инт тип података је модификатор типа, што значи да се може користити у комбинацији са другим типовима података за креирање нових типова података. На пример, следеће су важеће декларације променљивих:

 short int x; short y; short int *ptr; short int arr[10]; 
    Имплицитне конверзије

Када изводи аритметичке операције или операције поређења између променљивих различитих типова података, Ц може да изврши имплицитне конверзије да би се осигурало да се операције изводе исправно. Када користите кратке инт променљиве, важно је да будете свесни ових конверзија, јер могу довести до неочекиваног понашања. На пример, размотрите следећи код:

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

Излаз:

 500 

Објашњење:

У овом коду, з и с додељена вредност 500 , што је тачан резултат додавања Икс и и . Међутим, ако се принтф изјава се мења у принтф('%хун', з), излаз ће бити 244 , што је резултат претварања 500 непотписаном кратки инт . То се дешава зато што %ху користи се спецификација формата, што указује да вредност која се штампа треба да буде непотписан кратки инт.

    Промоција и деградација

Када изводи операције између променљивих различитих типова података, Ц може да врши унапређења и деградације како би се осигурало да се операције изводе исправно. Промоција се дешава када се променљива мањег типа података имплицитно конвертује у променљиву већег типа података, док се деградација дешава када се променљива већег типа података имплицитно конвертује у променљиву мањег типа података. Када користите кратке инт променљиве, важно је да будете свесни ових унапређења и деградирања, јер могу утицати на резултате аритметичких операција и операција поређења.

    Подразумевана иницијализација

Ако кратка инт променљива је декларисан без иницијализације, његова вредност је недефинисана. Другим речима, може да садржи било коју вредност, укључујући негативну вредност или вредност изван опсега кратки инт . Због тога је добра пракса да се променљиве увек иницијализују на познату вредност када су декларисане.

    Ливење

Ливење је процес претварања променљиве из једног типа података у други. Приликом пребацивања променљиве на а кратки инт , вредност променљиве је скраћена да би се уклопила у опсег од кратки инт . На пример, размотрите следећи код:

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

У овом коду, вредност од Икс је 500 , што је изван опсега кратког инт. Међутим, када Икс се баца на а кратка инт, вредност је скраћена да би се уклопила у опсег од кратки инт , резултира и приписује им се вредност -12 . Због тога, када се претварају променљиве, важно је осигурати да је резултујућа вредност унутар опсега типа података који се пребацује.

    Сигнеднесс

Подразумевано, кратки инт је потписани тип података , што значи да може представљати и позитивне и негативне вредности. Међутим, могуће је и декларисање кратки инт као непотписани тип података, користећи непотписан кратки инт или непотписана кратка кључна реч . Кратки инт без предзнака може представљати само ненегативне вредности, али се његов опсег удвостручује на 0 до 65,535 .

умл дијаграм јава
    Компатибилност

Од кратки инт је мањи тип података од инт , може се имплицитно унапредити у инт када се користи у аритметика или операције поређења са инт. То значи да а кратки инт може се користити где год ан инт се очекује, без потребе за експлицитном глумачком поставом.

    Преносивост

Величина кратки инт може да варира у зависности од платформе и компајлера који се користи. Да би се осигурала преносивост кода на различитим платформама, препоручује се употреба стдинт.х датотека заглавља , који дефинише типове целих бројева фиксне величине са специфичним ширинама и предзнаком. На пример, тхе инт16_т тип је 16-битни цео број са предзнаком , што је еквивалентно кратки инт на већини платформи.

    Индексирање низа

Када се декларише низ од кратке инт вредности , сваком елементу низа се приступа помоћу индекса. Индекс може бити целобројни литерал или променљива типа инт. Међутим, ако је индекс променљива типа кратки инт , аутоматски ће бити унапређен у инт пре него што се користи за приступ низу. На пример:

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

кратки инт може се користити за операције манипулације битовима, као нпр померање и маскирање . Приликом померања а кратки инт вредност, резултат је кратка вредност инт. Међутим, када се користе битни оператори попут & и |, кратке инт вредности се прво унапређују у инт пре него што се операција изведе.

    Перформансе

У неким случајевима, коришћење кратког инт уместо инт може побољшати перформансе, посебно на платформама са ограниченом меморијом или процесорском снагом. Међутим, то зависи од специфичне апликације и хардвера који се користи и треба га тестирати од случаја до случаја.

    Иницијализација коришћењем суфикса

Језик Ц обезбеђује суфикс за иницијализацију променљивих са кратким типом инт. Суфикс 'с' или 'С' може се користити са константном вредношћу да експлицитно специфицира кратку константу инт. На пример:

 Short int x=10s;