Рецоммендед, 2024

Избор Уредника

Разлика између локалне и глобалне варијабле

Као што смо раније рекли, променљива је име које се даје меморијској локацији и мора бити декларисано пре него што се користи. У Ц, све варијабле су декларисане на почетку програма. У Ц ++, променљиве се могу декларисати, у било ком тренутку, пре него што се користе у упутствима.

Варијабле се даље класификују у 'локалну' и 'глобалну' варијаблу, што је главна тема наше дискусије. Овде је главна разлика између локалне и глобалне променљиве у томе што је локална променљива декларисана унутар функцијског блока, где је глобална променљива декларисана ван функција у програму.

Проучимо још неколико разлика између локалне и глобалне варијабле заједно са табелом поређења.

Табела за упоређивање:

Основа за поређењеЛоцал ВариаблеГлобал Вариабле
ДекларацијаВаријабле се декларишу унутар функције.Варијабле се објављују изван било које функције.
ОбимУнутар функције, унутар које су декларисане.Кроз програм.
ПриступПриступају им само изјаве, унутар функције у којој су декларисане.Приступити било којој изјави у цијелом програму.
ЖивотКреира се када се унесе функционални блок и уништи на излазу.Останите у току цијело вријеме док се програм изводи.
СкладиштеЛокалне варијабле су похрањене у стог, осим ако није специфицирано.Похрањује се на фиксној локацији коју одређује компајлер.

Дефиниција локалне променљиве

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

Локална варијабла постоји све док се блок функције не изврши и тиме уништи након изласка из блока. Локалне варијабле губе садржај чим извршење напусти блок у којем су декларисане.

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

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

Дефиниција глобалне варијабле

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

Глобалне варијабле остају присутне све док се цијели програм не изврши у потпуности. Глобалне варијабле задржавају своје вриједности док се програм не изврши. Разлог томе је што су они ускладиштени на фиксном подручју меморије, о чему одлучује компајлер.

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

Кључна разлика између локалне и глобалне варијабле.

  1. Локалне варијабле се називају 'локално' зато што су познате само за изјаве написане у функцији унутар које су декларисане и нису познате било којој другој функцији која је присутна изван тог функцијског блока. У случају глобалне варијабле, оне су познате свакој функцији присутној у програму; стога се називају 'глобалним'.
  2. Глобалне варијабле задржавају своју вриједност све док програм није у фази извођења, јер се похрањују на фиксној локацији коју одређује компајлер. Локалне варијабле су похрањене у стог; стога, они не задржавају своју вриједност као 'стацк' је динамички по природи, али компајлер може бити усмјерен да задржи своју вриједност, користећи 'статички' модификатор.
  3. Ако су тада глобална и локална варијабла декларисане са истим именом, сви изрази кодног блока у којима је локална променљива декларисана односе се само на локалну променљиву и неће имати ефекта на глобалну променљиву.
  4. Локална варијабла се уништава када контрола програма изађе из блока у којем је локална варијабла декларисана. Међутим, глобална променљива се уништава када се заврши цео програм.

Закључак:

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

Top