Forskel mellem lokal og global variabel

Forfatter: Laura McKinney
Oprettelsesdato: 1 April 2021
Opdateringsdato: 16 Kan 2024
Anonim
How economic inequality harms societies | Richard Wilkinson
Video.: How economic inequality harms societies | Richard Wilkinson

Indhold


Som vi diskuterede tidligere, er en variabel et navn, der gives til en hukommelsesplacering, og den skal deklareres, før den bruges. I C deklareres alle variabler ved starten af ​​programmet. I C ++ kan variabler deklareres på ethvert tidspunkt, inden de bruges i instruktionerne.

Variabler er klassificeret i 'lokal' og 'global' variabel, som er hovedemnet for vores diskussion. Her er den største forskel mellem lokal og global variabel, at en lokal variabel er deklareret i en funktionsblok. I modsætning hertil deklareres den globale variabel uden for funktionerne i programmet.

Lad os undersøge nogle flere forskelle mellem en lokal og en global variabel sammen med et sammenligningsdiagram.

  1. Sammenligningstabel
  2. Definition
  3. Vigtige forskelle
  4. Fordele
  5. Ulemper
  6. Konklusion

Sammenligningstabel:

GRUNDLÆGGNING TIL SAMMENLIGNING LOKAL VARIABEL GLOBAL VARIABEL
Erklæring Variabler er deklareret inden for en funktion.
Variabler erklæres uden for enhver funktion.
Anvendelsesområde
Inden for en funktion, hvori de deklareres.Gennem hele programmet.
Værdi
Uinitialiseret lokal variabel resulterer i lagring af affaldsværdien.Ikke-initialiseret global variabel gemmer nul som standard.
Adgang Kun adgang til udsagnene i en funktion, hvor de er deklareret. Adgang til enhver erklæring i hele programmet.
DatadelingIkke medforenklet
LivOprettet, når funktionsblokken indtastes og ødelægges ved udgang. Forbliver i eksistens hele tiden, dit program kører.
Opbevaring
Lokale variabler gemmes på stakken, medmindre det er angivet.
Gemt på et fast sted bestemt af en compiler.
ParameterafgangNødvendigt krævetIkke påkrævet for globale variabler.
Ændringer i en variabel værdiEnhver ændring implicit i en lokal variabel påvirker ikke programmets andre funktioner.Ændringerne anvendt i den globale variabel af en funktion afspejler ændringerne i hele programmet.

Definition af lokal variabel

EN lokal variabel er altid deklareret inden for en funktionsblok. I C deklareres en lokal variabel ved starten af ​​en kodeblok. I C ++ kan de deklareres hvor som helst i kodeblokken, før de bruges. Lokale variabler kan kun fås ved hjælp af udsagn skrevet i en funktion, hvor de lokale variabler er deklareret. De er sikre i en forstand, at de ikke kan fås adgang til nogen anden funktion af det samme program.


Der findes en lokal variabel, indtil funktionsblokken er i eksekvering og ødelægges derved, når eksekveringen forlader blokken. Lokale variabler mister deres indhold, så snart udførelsen forlod den blok, hvori de er erklæret.

Årsagen bag det er, at de lokale variabler gemmes på stakken, medmindre deres specielle lagring er specificeret. Stakken har dynamisk karakter, og ændringen i hukommelsesplacering fører til grunden til, at den lokale variabel ikke har deres værdi, så snart en blok af en funktion findes.

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 man få adgang til den globale variabel ved hjælp af enhver funktion, der findes i et program. Globale variabler er ikke meget pålidelige, da deres værdi kan ændres ved enhver funktion, der findes i programmet.


De forbliver i eksistensen, indtil hele programmet udføres fuldstændigt. Globale variabler bevarer deres værdier, indtil programmet er i eksekvering. Årsagen er, at de gemmes i en fast hukommelsesregion, besluttet af kompilatoren.

En global variabel er nyttig i situationer, hvor flere funktioner får 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.

  1. Lokale variabler kaldes 'lokal', fordi de kun er kendt for udsagnene, der er skrevet i en funktion, hvori de er erklæret og ikke kendt for nogen anden funktion, der findes uden for denne funktionsblok. I tilfælde af en 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 bestemt af kompilatoren. Lokale variabler gemmes på stakken; derfor bevarer de ikke deres værdi, da 'stak' er dynamisk i naturen, men kompilatoren kan ledes til at bevare deres værdi ved at bruge den 'statiske' modifikator.
  3. Hvis en global og en lokal variabel er deklareret med det samme navn, vil alle udsagnene for en kodeblok, hvor den lokale variabel er deklareret, kun henvise til en lokal variabel og vil ikke have nogen effekt på en global variabel.
  4. En lokal variabel ødelægges, når styringen af ​​programmet går ud af den blok, hvor den lokale variabel er deklareret. En global variabel ødelægges imidlertid, når hele programmet afsluttes.

Fordele

Lokal variabel

  • Den største fordel ved en lokal variabel er, at der ikke sker nogen utilsigtet ændring af dataene. Variablen er deklareret inde i en blok, og denne blok af kode bruger variablen og undgår uønskede bivirkninger.
  • Lokal variabel forbruger hukommelse i en begrænset mængde af perioden, kun når blokken, der indeholder variablen, udføres.

Global variabel

  • Globale variabler er meget nyttige, når du har at gøre med flere funktioner i programmet, der manipulerer de samme data.
  • Ændringer, der skulle anvendes i hele programmet, ville være lettere ved at implementere en global variabel.
  • Vi kan få adgang til hvor som helst eller gennem enhver tilfældig funktion af programmet.

Ulemper

Lokal variabel

  • Omfanget af den lokale variabel er begrænset.
  • Forbyder deling af data.
  • De er ikke i stand til at bevare dataene mellem opkaldene, fordi lokale variabler genereres og fjernes ved hver indgang og udgang fra blokken. Den statiske modifikator kan dog bruges til at bevare værdierne.

Global variabel

  • Brug af et stort antal globale variabler kan resultere i generering af programfejl.
  • Det største problem, det forårsager, er utilsigtet forekomst af ændringerne på grund af de spredte globale variabler i hele programmet.
  • Det kunne også øge behovet for at udføre kodeforarbejdning, hvilket er en meget omfattende proces, hvor hele programkoden er omstruktureret.

Konklusion:

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