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

Аутор: Laura McKinney
Датум Стварања: 1 Април 2021
Ажурирати Датум: 16 Може 2024
Anonim
Let the environment guide our development | Johan Rockstrom
Видео: Let the environment guide our development | Johan Rockstrom

Садржај


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

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

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

  1. Упоредни графикон
  2. Дефиниција
  3. Кључне разлике
  4. Предности
  5. Недостаци
  6. Закључак

Упоредни графикон:

ОСНОВЕ ПОРЕДБЕ ЛОЦАЛ ВАРИАБЛЕ ГЛОБАЛНА ВАРИЈАЛНА
Изјава Варијабле су декларисане унутар функције.
Варијабле су деклариране изван било које функције.
Обим
Унутар функције, унутар које су декларисани.Кроз програм.
Вредност
Неиницијализована локална варијабла резултира складиштењем вредности смећа.Неиницијализована глобална променљива подразумевано чува нулу.
Приступ Приступ само изјавама, унутар функције у којој су декларисани. Приступа се било којом изјавом у целом програму.
Дељење податакаНије обезбеђеноОлакшано
ЖивотНаправљено када се функционални блок унесе и уништи по изласку. Останите током читавог времена извршења вашег програма.
Складиште
Локалне варијабле се спремају у хрпу, осим ако није наведено.
Чува се на фиксној локацији о којој одлучује преводилац.
Пролаз параметараОбавезноНије потребно за глобалне променљиве.
Промене променљиве вредностиСвака модификација подразумијевана у локалној варијабли не утјече на остале функције програма.Промјене примијењене у глобалној варијабли неке функције одражавају промјене у цијелом програму.

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

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


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

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

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

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

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


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

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

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

Предности

Локална променљива

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

Глобална променљива

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

Недостаци

Локална променљива

  • Опсег локалне променљиве је ограничен.
  • Забрањује дељење података.
  • Они не могу задржати податке између позива јер се локалне варијабле генерирају и уклањају са сваким уласком и изласком из блока. Међутим, статички модификатор може се користити за задржавање вредности.

Глобална променљива

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

Закључак:

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