Anbefalet, 2024

Redaktørens Valg

Forskel mellem lokal og global variabel

Som vi diskuterede tidligere, er en variabel et navn, der er givet til en hukommelsesplacering, og det skal deklareres, før det bruges. I C er alle variabler deklareret ved starten af ​​programmet. I C ++ kan variabler deklareres på et hvilket som helst tidspunkt, inden de bruges i vejledningen.

Variabler klassificeres yderligere i 'lokal' og 'global' variabel, som er hovedemnet for vores diskussion. Her er hovedforskellen mellem en lokal og en global variabel, at en lokal variabel er erklæret inde i en funktionsblok, hvor som den globale variabel erklæres uden for funktionerne i programmet.

Lad os studere nogle flere forskelle mellem en lokal og en global variabel sammen med en sammenligningstabel.

Sammenligningstabel:

Grundlag for sammenligningLokal variabelGlobal Variabel
ErklæringVariabler erklæres inde i en funktion.Variabler erklæres uden for enhver funktion.
AnvendelsesområdeInden for en funktion, inden for hvilken de er erklæret.Gennem hele programmet.
AdgangKun tilgængelig ved udsagnene, inde i en funktion, hvor de er erklæret.Adgang til enhver erklæring i hele programmet.
LivOprettet, når funktionsblokken er indtastet og ødelagt ved udgangen.Bliv i eksistens for hele tiden dit program udføres.
OpbevaringLokale variabler gemmes på stakken, medmindre andet er angivet.Opbevares på et fast sted bestemt af en kompilator.

Definition af lokal variabel

En lokal variabel erklæres altid inde i en funktionsblok. I C er en lokal variabel deklareret ved starten af ​​en kodeblok. I C ++ kan de deklareres overalt i kodeblokken inden brug. Lokale variabler kan kun fås af de udsagn, der er skrevet i en funktion, hvori den lokale variabel er angivet. De er sikre på en måde, at de ikke kan få adgang til nogen anden funktion af det samme program.

Lokal variabel eksisterer, indtil blokken af ​​funktionen er i eksekvering og dermed ødelagt efter udførelsen udgår fra blokken. Lokale variabler mister deres indhold, så snart udførelsen forlod den blok, hvori de er erklæret.

Årsagen til det er, at de lokale variabler opbevares på stakken, medmindre deres specielle opbevaring er angivet. Stakken er dynamisk af naturen, og ændringen i hukommelsesstedet fører til, hvorfor lokal variabel ikke holder deres værdi, så snart en funktionsblok eksisterer.

Bemærk:
Der er dog en måde at bevare værdien af ​​en lokal variabel ved at bruge den 'statiske' modifikator.

Definition af global variabel

En global variabel erklæres uden for alle de funktioner, der findes i et program. I modsætning til lokale variabler kan den globale variabel fås af enhver funktion, der er til stede i et program. Globale variabler er ikke meget pålidelige, da deres værdi kan ændres af enhver funktion, der er til stede i programmet.

Globale variabler forbliver i eksistens indtil hele programmet fuldføres. Globale variabler beholder deres værdier, indtil programmet er i fuldførelse. Årsagen er, at de gemmes på et fast område af hukommelse, besluttet af kompilatoren.

En global variabel er nyttig i situationer, hvor flere funktioner har adgang til de samme data. Brug af et stort antal globale variabler kan være problematisk, da der kan være uønskede ændringer i værdien af ​​en global variabel.

Nøgleforskel mellem lokal og global variabel.

  1. Lokale variabler kaldes 'lokale', fordi de kun er kendt for de udsagn, der er skrevet i en funktion, inden for hvilken de er erklæret og ikke kendt for nogen anden funktion, der er til stede uden for den pågældende funktionsblok. I tilfælde af global variabel er de kendt for hver eneste funktion, der er til stede i et program; derfor kaldes de "global".
  2. Globale variabler beholder deres værdi, indtil programmet er i eksekveringsfasen, da de gemmes på et fast sted, der er bestemt af kompilatoren. Lokale variabler lagres på stakken; Derfor opretholder de ikke deres værdi, da "stakken" er dynamisk i naturen, men kompilatoren kan styres for at bevare deres værdi ved at bruge den 'statiske' modifikator.
  3. Hvis en global og en lokal variabel er angivet med samme navn, så vil alle udsagn i en kodeblok, hvori lokal variabel er angivet, kun henvise til en lokal variabel og vil ikke medføre nogen effekt på en global variabel.
  4. En lokal variabel ødelægges, når programstyringen lukkes ud af blokken, hvori lokal variabel er angivet. En global variabel er dog ødelagt, når hele programmet afsluttes.

Konklusion:

De lokale og globale variabler begge er lige nødvendige, når du skriver programmet. Men at erklære et stort antal globale variabler kan være problematisk i et stort program, da det kan forårsage uønskede ændringer i en global variabel; og det ville blive svært at identificere, hvilken del af et program, der blev ændret. Derfor bør man undgå at erklære unødvendige globale variabler.

Top