Variabler er videre klassifisert i "lokal" og "global" variabel, som er hovedtemaet i vår diskusjon. Her er hovedforskjellen mellom en lokal og en global variabel at en lokal variabel er deklarert inne i en funksjonsblokk, hvor som den globale variabelen er deklarert utenfor funksjonene i programmet.
La oss studere noen flere forskjeller mellom en lokal og en global variabel sammen med et sammenligningsdiagram.
Sammenligningstabel:
Grunnlag for sammenligning | Lokal variabel | Global variabel |
---|---|---|
Erklæring | Variabler er deklarert i en funksjon. | Variabler er deklarert utenfor hvilken som helst funksjon. |
omfang | Innenfor en funksjon, innenfor hvilke de er erklært. | Gjennom hele programmet. |
Adgang | Kun tilgang til uttalelsene, inne i en funksjon der de er erklært. | Tilgang til noen uttalelse i hele programmet. |
Liv | Opprettet når funksjonsblokken er skrevet inn og ødelagt ved utgang. | Fortsatt i eksistens for hele tiden programmet ditt utføres. |
Oppbevaring | Lokale variabler lagres på stakken, med mindre det er spesifisert. | Lagret på et fast sted bestemt av en kompilator. |
Definisjon av lokal variabel
En lokal variabel er alltid deklarert inne i en funksjonsblokk. I C er en lokal variabel deklarert ved starten av en kodeblokk. I C ++ kan de deklareres hvor som helst i kodeblokken før bruk. Lokale variabler kan bare nås med de uttalelsene som er skrevet inn i en funksjon der den lokale variabelen er deklarert. De er sikre på en måte at de ikke kan nås av noen annen funksjon i det samme programmet.
Lokal variabel eksisterer til blokken av funksjonen er i utførelse, og dermed ødelagt etter at utførelsen utgår fra blokken. Lokale variabler mister innholdet sitt så snart utførelsen forlot blokken der de er erklært.
Årsaken til det er at de lokale variablene lagres på stakken med mindre deres spesielle lagring er spesifisert. Stakken er dynamisk i naturen, og endringen i minnested finner til grunnen til at lokal variabel ikke holder verdien så snart blokkene av en funksjon eksisterer.
Merk:
Det er imidlertid en måte å beholde verdien av en lokal variabel ved å bruke den 'statiske' modifikatoren.
Definisjon av global variabel
En global variabel er deklarert utenfor alle funksjonene som er tilstede i et program. I motsetning til lokale variabler kan den globale variabelen nås av enhver funksjon som er tilstede i et program. Globale variabler er ikke mye pålitelige, siden deres verdi kan endres av hvilken som helst funksjon som er tilstede i programmet.
Globale variabler forblir til stede til hele programmet blir fullført. Globale variabler beholder sine verdier til programmet er i fullføring. Årsaken er at de lagres på et fast minnesområde, bestemt av kompilatoren.
En global variabel er nyttig i situasjoner der flere funksjoner har tilgang til de samme dataene. Å bruke et stort antall globale variabler kan være problematisk, da det kan være uønskede endringer i verdien av en global variabel.
Hovedforskjell mellom lokal og global variabel.
- Lokale variabler kalles "lokale" fordi de kun er kjent med de uttalelsene som er skrevet i en funksjon der de er erklært og ikke kjent for noen annen funksjon som er tilstede utenfor den funksjonsblokken. I tilfelle av global variabel er de kjent for hver funksjon som er tilstede i et program; derfor kalles de "global".
- Globale variabler beholder verdien deres til programmet er i utførelsesfasen, da de lagres på et fast sted bestemt av kompilatoren. Lokale variabler lagres på stakken; dermed beholder de ikke verdien, da "stabelen" er dynamisk i naturen, men kompilatoren kan styres for å beholde verdien ved å bruke den "statiske" modifikatoren.
- Hvis en global og en lokal variabel er deklarert med samme navn, vil alle setningene i en kodeblokk hvor lokal variabel er deklarert, bare referere til en lokal variabel og vil ikke forårsake en effekt på en global variabel.
- En lokal variabel blir ødelagt når kontrollen av programmet går ut av blokken der lokal variabel er erklært. En global variabel blir imidlertid ødelagt når hele programmet avsluttes.
Konklusjon:
De lokale og globale variablene er begge like nødvendige når du skriver programmet. Men å erklære et stort antall globale variabler kan være problematisk i et stort program, da det kan forårsake uønskede endringer i en global variabel; og det ville bli vanskelig å identifisere hvilken del av et program som ble gjort. Derfor bør man unngå å erklære unødvendige globale variabler.