Skirtumas tarp vietinio ir globaliojo kintamojo

Autorius: Laura McKinney
Kūrybos Data: 1 Balandis 2021
Atnaujinimo Data: 16 Gegužė 2024
Anonim
Skirtumas tarp vietinio ir globaliojo kintamojo - Technologija
Skirtumas tarp vietinio ir globaliojo kintamojo - Technologija

Turinys


Kaip jau aptarėme anksčiau, kintamasis yra vardas, suteikiamas atminties vietai, ir jis turi būti deklaruotas prieš jį naudojant. C raidėje visi kintamieji deklaruojami programos pradžioje. C ++ kintamuosius bet kuriuo metu galima deklaruoti, prieš juos panaudojant instrukcijose.

Kintamieji skirstomi į „vietinius“ ir „globalius“ kintamuosius, kurie yra pagrindinė mūsų diskusijos tema. Pagrindinis skirtumas tarp vietinio ir globaliojo kintamojo yra tas, kad vietinis kintamasis deklaruojamas funkcijos bloke. Priešingai, visuotinis kintamasis deklaruojamas už programos funkcijų ribų.

Išnagrinėsime dar keletą vietinio ir globaliojo kintamųjų skirtumų kartu su palyginimo diagrama.

  1. Palyginimo diagrama
  2. Apibrėžimas
  3. Pagrindiniai skirtumai
  4. Privalumai
  5. Trūkumai
  6. Išvada

Palyginimo diagrama:

PALYGINIMO PAGRINDAS VIETINĖ Kintama PASAULINIS Kintamas
Deklaracija Kintamieji deklaruojami funkcijos viduje.
Kintamieji deklaruojami už bet kurios funkcijos ribų.
Taikymo sritis
Funkcijoje, kurios viduje jie yra deklaruojami.Visoje programoje.
Vertė
Neinicializuotas vietinis kintamasis saugo šiukšlių vertę.Neinicializuotas globalus kintamasis pagal nutylėjimą išsaugo nulį.
Prieiga Prieinama tik teiginiais funkcijos, kurioje jie deklaruojami, viduje. Prieinamas bet kokiu visos programos teiginiu.
Dalijimasis duomenimisNepateiktaPalengvino
GyvenimasSukurtas įvedant funkcijų bloką ir sunaikinant jį išeinant. Likite visą laiką, kol vykdoma jūsų programa.
Sandėliavimas
Vietiniai kintamieji saugomi krūvoje, jei nenurodyta.
Laikoma fiksuotoje vietoje, kurią nustato kompiliatorius.
Parametras praeinaBūtinai reikalaujamaNereikalaujama globalių kintamųjų.
Kintamos vertės pokyčiaiBet kokie vietinio kintamojo pakeitimai nedaro įtakos kitoms programos funkcijoms.Funkcijos globaliame kintamajame taikomi pakeitimai atspindi visos programos pokyčius.

Vietinio kintamojo apibrėžimas

A vietinis kintamasis visada deklaruojamas funkcijos bloke. C raidėje vietinis kintamasis deklaruojamas kodo bloko pradžioje. „C ++“ programoje juos galima deklaruoti bet kurioje kodo bloko dalyje prieš juos naudojant. Vietinius kintamuosius galima pasiekti tik pateikiant sakinius funkcijos viduje, kurioje deklaruojami vietiniai kintamieji. Jie yra saugūs tam tikra prasme, kad jais negali naudotis jokia kita tos pačios programos funkcija.


Vietinis kintamasis egzistuoja tol, kol vykdomas funkcijos blokas, todėl sunaikinamas, kai vykdymas išeina iš bloko. Vietiniai kintamieji praranda savo turinį, kai tik vykdymas palieka bloką, kuriame jie deklaruojami.

Priežastis ta, kad vietiniai kintamieji yra saugomi krūvoje, nebent nenurodyta speciali jų saugykla. Rietuvė yra dinamiško pobūdžio, o atminties vietos pasikeitimas lemia priežastį, kodėl vietinis kintamasis neišlaiko savo vertės, kai tik egzistuoja funkcijos blokas.

Pastaba:
Tačiau yra būdas išsaugoti vietinio kintamojo vertę naudojant „statinį“ modifikatorių.

Visuotinio kintamojo apibrėžimas

A globalus kintamasis yra deklaruojamas už visų programoje esančių funkcijų ribų. Priešingai nei vietiniai kintamieji, visuotinį kintamąjį galima pasiekti bet kuria programoje esančia funkcija. Visuotiniai kintamieji nėra daug patikimi, nes jų vertę gali pakeisti bet kuri programoje esanti funkcija.


Jie galioja tol, kol visa programa bus visiškai įvykdyta. Visuotiniai kintamieji išlaiko savo vertes, kol programa vykdoma. Priežastis ta, kad jie saugomi fiksuotame atminties regione, nusprendžia kompiliatorius.

Visuotinis kintamasis yra naudingas tais atvejais, kai prie tų pačių duomenų prieinamos kelios funkcijos. Naudoti daugybę globalių kintamųjų gali būti sudėtinga, nes gali būti nepageidaujamų globalių kintamųjų vertės pokyčių.

  1. Vietiniai kintamieji vadinami „vietiniais“, nes jie yra žinomi tik teiginiams, parašytiems funkcijoje, kurioje jie yra deklaruoti, ir nežinomi jokiai kitai funkcijai, esančiai už tos funkcijos bloko ribų. Visuotinio kintamojo atveju jie žinomi kiekvienai funkcijai, esančiai programoje; vadinasi, jie vadinami „globaliais“.
  2. Visuotiniai kintamieji išlaiko savo vertę tol, kol programa nėra vykdymo fazėje, nes jie saugomi nustatytoje vietoje, kurią nustato kompiliatorius. Vietiniai kintamieji saugomi krūvoje; taigi, jie neišlaiko savo vertės, nes „krūva“ yra dinamiško pobūdžio, tačiau kompiliatoriui gali būti nurodyta išlaikyti jų vertę naudojant „statinį“ modifikatorių.
  3. Jei globalusis ir vietinis kintamieji deklaruojami tuo pačiu pavadinimu, tada visi kodo bloko, kuriame deklaruojamas vietinis kintamasis, sakiniai bus susiję tik su vietiniu kintamuoju ir neturės jokio poveikio visuotiniam kintamajam.
  4. Vietinis kintamasis sunaikinamas, kai kontroliuojamas programos išėjimas iš bloko, kuriame deklaruojamas vietinis kintamasis. Tačiau, nutraukus visą programą, visuotinis kintamasis sunaikinamas.

Privalumai

Vietinis kintamasis

  • Pagrindinis vietinio kintamojo pranašumas yra tas, kad duomenys netyčia nekeičiami. Kintamasis yra deklaruojamas bloko viduje, o šis kodo blokas naudoja kintamąjį ir išvengia nepageidaujamo šalutinio poveikio.
  • Vietinis kintamasis sunaudoja atmintį ribotą laikotarpį, tik tada, kai vykdomas blokas, kuriame yra kintamasis.

Visuotinis kintamasis

  • Visuotiniai kintamieji yra labai naudingi, kai susiduriate su keliomis programos funkcijomis, manipuliuodami tais pačiais duomenimis.
  • Pakeitimai, kuriuos reikėjo pritaikyti visoje programoje, bus lengvesni įgyvendinant globalų kintamąjį.
  • Mes galime prieiti iš bet kurios vietos arba per bet kurią atsitiktinę programos funkciją.

Trūkumai

Vietinis kintamasis

  • Vietinio kintamojo taikymo sritis yra ribota.
  • Draudžia dalintis duomenimis.
  • Jie nesugeba išsaugoti duomenų tarp skambučių, nes vietiniai kintamieji sukuriami ir pašalinami kiekvieną kartą įvedant ir išėjus iš bloko. Tačiau vertėms išlaikyti gali būti naudojamas statinis modifikatorius.

Visuotinis kintamasis

  • Naudojant daugybę globalių kintamųjų, gali kilti programų klaidų.
  • Pagrindinė problema, kurią ji sukelia, yra atsitiktinis pokyčių atsiradimas dėl pasklidusių globalių kintamųjų visoje programoje.
  • Taip pat gali iškilti poreikis atlikti kodų atkūrimą, o tai yra labai platus procesas, kurio metu visas programos kodas yra pertvarkomas.

Išvada:

Rašant programą būtina ir vietinių, ir globaliųjų kintamųjų. Vis dėlto masinėje programoje gali būti sudėtinga deklaruoti daugybę globalių kintamųjų, nes tai gali sukelti nepageidaujamų globaliųjų kintamųjų pakeitimus; ir bus sunku nustatyti, kuri programos dalis padarė tą pakeitimą. Taigi reikėtų vengti skelbti nereikalingus globalius kintamuosius.