Razlika između lokalne i globalne varijable

Autor: Laura McKinney
Datum Stvaranja: 1 Travanj 2021
Datum Ažuriranja: 10 Svibanj 2024
Anonim
C++ - Tutorijal 24 - Lokalne i globalne varijable i prototipiranje funkcija
Video: C++ - Tutorijal 24 - Lokalne i globalne varijable i prototipiranje funkcija

Sadržaj


Kao što smo ranije raspravljali, varijabla je ime koje je dodijeljeno memorijskom mjestu i mora se deklarirati prije nego što se koristi. U C sve se varijable deklariraju na početku programa. U C ++, varijable se mogu deklarirati u bilo kojem trenutku prije nego što se koriste u uputama.

Varijable su klasificirane u 'lokalnu' i 'globalnu' varijablu, što je glavna tema naše rasprave. Ovdje je glavna razlika između lokalne i globalne varijable ta što je lokalna varijabla deklarirana unutar funkcionalnog bloka. Suprotno tome, globalna varijabla je deklarirana izvan funkcija u programu.

Proučimo još nekoliko razlika između lokalne i globalne varijable, zajedno sa usporednom tablicom.

  1. Usporedni grafikon
  2. definicija
  3. Ključne razlike
  4. prednosti
  5. Nedostaci
  6. Zaključak

Uporedni grafikon:

OSNOVA USPOREDBE LOKALNA VARIJALNA GLOBALNA VARIJALNA
Deklaracija Varijable su deklarirane unutar funkcije.
Varijable su deklarirane izvan bilo koje funkcije.
djelokrug
Unutar funkcije, unutar koje su deklarirani.Kroz program.
Vrijednost
Neinicijalizirana lokalna varijabla rezultira skladištenjem vrijednosti smeća.Neinicijalizirana globalna varijabla zadano je u zadanu vrijednost.
Pristup Pristup samo izjavama, unutar funkcije u kojoj su deklarirani. Pristupiti bilo kojom izjavom u cijelom programu.
Dijeljenje podatakaNije predviđenoOlakšan
ŽivotNapravljeno kada se funkcionalni blok unese i uništi pri izlasku. Ostanite cijelo vrijeme izvršenja vašeg programa.
skladištenje
Lokalne varijable pohranjuju se u gomilu ako nije navedeno.
Pohranjuje se na fiksnoj lokaciji o kojoj odlučuje prevoditelj.
Prolaz parametaraObaveznoNije potrebno za globalne varijable.
Promjene u varijabilnoj vrijednostiSvaka promjena podrazumijevana u lokalnoj varijabli ne utječe na ostale funkcije programa.Promjene primijenjene u globalnoj varijabli neke funkcije odražavaju promjene u čitavom programu.

Definicija lokalne varijable

lokalna varijabla uvijek je deklariran unutar funkcionalnog bloka. U C, lokalna varijabla je deklarirana na početku bloka koda. U C ++ mogu se deklarirati bilo gdje u bloku koda prije njihove upotrebe. Lokalnim varijablama može se pristupiti samo pomoću iskaza napisanih unutar funkcije u kojoj su deklarirane lokalne varijable. Sigurni su u smislu da im ne može pristupiti nijedna druga funkcija istog programa.


Lokalna varijabla postoji dok se ne izvrši blok funkcije i time se uništi nakon što izvršavanje napušta blok. Lokalne varijable gube svoj sadržaj čim izvršenje napusti blok u kojem su deklarirane.

Razlog je taj što su lokalne varijable spremljene u hrpu, osim ako nije navedena njihova posebna pohrana. Skup je dinamičke prirode, a promjena memorijske lokacije dovodi do toga da lokalna varijabla ne zadržava vrijednost čim postoji blok funkcije.

Bilješka:
No, postoji način da se zadrži vrijednost lokalne varijable pomoću 'statičkog' modifikatora.

Definicija globalne varijable

globalna varijabla se deklarira izvan svih funkcija prisutnih u programu. Za razliku od lokalnih varijabli, globalnoj varijabli može pristupiti bilo koja funkcija prisutna u programu. Globalne varijable nisu mnogo pouzdane jer njihovu vrijednost može mijenjati bilo koja funkcija prisutna u programu.

Oni i dalje postoje sve dok se cijeli program ne izvrši u potpunosti. Globalne varijable zadržavaju svoje vrijednosti dok se program ne izvrši. Razlog je taj što se spremaju na određeno područje memorije, o čemu odlučuje prevoditelj.


Globalna varijabla je korisna u situacijama kada više funkcija pristupa istim podacima. Korištenje velikog broja globalnih varijabli može biti problematično jer može doći do neželjenih promjena u vrijednosti globalne varijable.

  1. Lokalne varijable nazivaju se "lokalne", jer su poznate samo po izjavama napisanim u funkciji unutar koje su deklarirane i nisu poznate nijednoj drugoj funkciji prisutnoj izvan tog bloka. U slučaju globalne varijable, one su poznate svakoj funkciji u programu; stoga ih nazivaju i „globalnim“.
  2. Globalne varijable zadržavaju svoju vrijednost sve dok program nije u fazi izvršavanja, jer se pohranjuju na fiksno mjesto o kojem odlučuje prevoditelj. Lokalne varijable su pohranjene u hrpi; stoga ne zadržavaju svoju vrijednost jer je "snop" dinamičke naravi, ali prevodilac može usmjeriti da zadrži njihovu vrijednost pomoću "statičkog" modifikatora.
  3. Ako su globalna i lokalna varijabla deklarirani s istim nazivom tada, sve izjave bloka koda u kojem je deklarirana lokalna varijabla odnose se samo na lokalnu varijablu i neće uzrokovati globalnu varijablu.
  4. Lokalna varijabla se uništava kada kontrola izlaza programa iz bloka u kojem je deklarirana lokalna varijabla. Međutim, globalna varijabla se uništava nakon prekida čitavog programa.

prednosti

Lokalna varijabla

  • Glavna prednost lokalne varijable je da ne postoji slučajna promjena podataka. Promjenjiva se deklarira unutar bloka, a ovaj blok koda koristi varijablu i izbjegava nepoželjne nuspojave.
  • Lokalna varijabla troši memoriju za ograničenu količinu razdoblja, samo kad se izvrši blok koji sadrži varijablu.

Globalna varijabla

  • Globalne varijable su vrlo korisne kada se bavite s nekoliko funkcija u programu koji manipuliraju istim podacima.
  • Promjene koje bi se trebale primijeniti u cjelokupnom programu bile bi jednostavnije primjenom globalne varijable.
  • Mi možemo pristupiti s bilo kojeg mjesta ili putem bilo koje slučajne funkcije programa.

Nedostaci

Lokalna varijabla

  • Opseg lokalne varijable je ograničen.
  • Zabranjuje dijeljenje podataka.
  • Ne mogu zadržati podatke između poziva jer se lokalne varijable generiraju i uklanjaju sa svakim ulaskom i izlaskom iz bloka. Međutim, statički modifikator može se koristiti za zadržavanje vrijednosti.

Globalna varijabla

  • Korištenje velikog broja globalnih varijabli moglo bi rezultirati generiranjem programskih pogrešaka.
  • Glavni problem koji uzrokuje je slučajna pojava promjena uslijed distribuiranih globalnih varijabli tijekom programa.
  • Mogla bi se ukazati i potreba za provođenjem preusmjeravanja koda, što je vrlo opsežan proces u kojem je cjelokupni programski kod restrukturiran.

Zaključak:

I lokalne i globalne varijable potrebne su i podjednako potrebne tijekom pisanja programa. Međutim, deklariranje velikog broja globalnih varijabli moglo bi biti problematično u velikom programu jer može prouzrokovati neželjene promjene globalne varijable; i bilo bi teško prepoznati onaj dio programa koji je napravio tu promjenu. Stoga treba izbjegavati deklariranje nepotrebnih globalnih varijabli.