Razlika između lokalne i globalne varijable
Sadržaj
- Uporedni grafikon:
- Definicija lokalne varijable
- Definicija globalne varijable
- prednosti
- Nedostaci
- Zaključak:
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.
- Usporedni grafikon
- definicija
- Ključne razlike
- prednosti
- Nedostaci
- 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 podataka | Nije predviđeno | Olakšan |
Život | Napravljeno 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 parametara | Obavezno | Nije potrebno za globalne varijable. |
Promjene u varijabilnoj vrijednosti | Svaka 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.
- 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“.
- 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.
- 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.
- 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.