Preporučeno, 2024

Izbor Urednika

Razlika između lokalne i globalne varijable

Kao što smo već spomenuli, varijabla je ime, dodijeljeno memorijskoj lokaciji i mora biti deklarirano prije nego se koristi. U C su sve varijable deklarirane na početku programa. U C ++, varijable se mogu deklarirati, u bilo kojem trenutku vremena, prije nego što se koriste u uputama.

Varijable se nadalje klasificiraju u 'lokalnu' i 'globalnu' varijablu, što je glavna tema naše rasprave. Ovdje je glavna razlika između lokalne i globalne varijable ta da je lokalna varijabla deklarirana unutar funkcijskog bloka, gdje je globalna varijabla deklarirana izvan funkcija u programu.

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

Tablica usporedbe:

Osnova za usporedbuLokalna varijablaGlobalna varijabla
DeklaracijaVarijable se deklariraju unutar funkcije.Varijable se objavljuju izvan bilo koje funkcije.
djelokrugUnutar funkcije, unutar koje su deklarirane.Kroz cijeli program.
PristupPristupaju im samo izjave, unutar funkcije u kojoj su deklarirane.Pristupiti bilo kojoj izjavi u cijelom programu.
ŽivotStvoreno kada se unese i uništi funkcijski blok pri izlasku.Ostanite u postojanju cijelo vrijeme dok se program izvodi.
skladištenjeLokalne varijable pohranjuju se u snopu, osim ako nisu specificirane.Pohranjuje se na fiksnoj lokaciji koju određuje prevodilac.

Definicija lokalne varijable

Lokalna varijabla se uvijek deklarira unutar funkcijskog bloka. U C je lokalna varijabla deklarirana na početku bloka koda. U C ++, oni se mogu deklarirati bilo gdje u bloku koda prije njihove uporabe. Lokalnim varijablama može se pristupiti samo putem izraza napisanih unutar funkcije u kojoj se lokalna varijabla deklarira. Oni su sigurni u smislu da im se ne može pristupiti niti jedna druga funkcija istog programa.

Lokalna varijabla postoji sve dok se blok funkcije ne izvrši i time uništi nakon izlaska iz bloka. Lokalne varijable gube sadržaj čim izvršenje napusti blok u kojem su deklarirane.

Razlog tome je što su lokalne varijable pohranjene u stogu osim ako nije specificirano njihovo posebno spremanje. Stack je po prirodi dinamičan, a promjena memorijske lokacije dovodi do razloga zašto lokalna varijabla ne zadržava svoju vrijednost čim blok funkcije postoji.

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

Definicija globalne varijable

Globalna varijabla objavljuje se 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 se njihova vrijednost može promijeniti bilo kojom funkcijom prisutnom u programu.

Globalne varijable ostaju prisutne sve dok se cijeli program ne izvrši u potpunosti. Globalne varijable zadržavaju svoje vrijednosti dok se program ne izvrši. Razlog tome je što su pohranjeni na fiksnom području memorije, o čemu odlučuje prevodilac.

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 mogu postojati neželjene promjene vrijednosti globalne varijable.

Ključna razlika između lokalne i globalne varijable.

  1. Lokalne varijable nazivaju se 'lokalnim' jer su poznate samo za izjave napisane u funkciji unutar koje su deklarirane i nisu poznate niti jednoj drugoj funkciji koja je prisutna izvan tog funkcijskog bloka. U slučaju globalne varijable, one su poznate svakoj funkciji prisutnoj u programu; stoga se nazivaju "globalnim".
  2. Globalne varijable zadržavaju svoju vrijednost sve dok program nije u fazi izvođenja, jer se pohranjuju na fiksnoj lokaciji koju određuje prevodilac. Lokalne varijable su pohranjene u stog; dakle, oni ne zadržavaju svoju vrijednost kao 'stog' je dinamički po prirodi, ali kompajler može biti usmjeren da zadrži svoju vrijednost, koristeći 'statički' modifikator.
  3. Ako su tada globalna i lokalna varijabla deklarirane s istim imenom, svi izrazi bloka koda u kojima je lokalna varijabla deklarirana odnosit će se samo na lokalnu varijablu i neće uzrokovati učinak na globalnu varijablu.
  4. Lokalna varijabla se uništava kada kontrola izlaza programa iz bloka u kojem je lokalna varijabla deklarirana. Međutim, globalna varijabla se uništava kada se cijeli program prekine.

Zaključak:

Lokalne i globalne varijable jednako su potrebne tijekom pisanja programa. No, proglašavanje velikog broja globalnih varijabli moglo bi biti problematično u velikom programu, jer može uzrokovati neželjene promjene u globalnoj varijabli; bilo bi teško identificirati koji dio programa je napravio tu promjenu. Stoga treba izbjegavati deklariranje nepotrebnih globalnih varijabli.

Top