Forskjell mellom lokal og global variabel

Forfatter: Laura McKinney
Opprettelsesdato: 1 April 2021
Oppdater Dato: 14 Kan 2024
Anonim
L08 Global Variables Are Evil
Video: L08 Global Variables Are Evil

Innhold


Som vi diskuterte tidligere, er en variabel et navn gitt til en minneplassering, og den må deklareres før den brukes. I C deklareres alle variablene ved starten av programmet. I C ++ kan variabler deklareres når som helst før de brukes i instruksjonene.

Variabler er klassifisert i ‘lokal’ og ‘global’ variabel, som er hovedtemaet i diskusjonen vår. Her er hovedforskjellen mellom lokal og global variabel at en lokal variabel er deklarert i en funksjonsblokk. I kontrast deklareres den globale variabelen utenfor funksjonene i programmet.

La oss studere noen flere forskjeller mellom en lokal og en global variabel sammen med et sammenligningsdiagram.

  1. Sammenligningstabell
  2. Definisjon
  3. Viktige forskjeller
  4. Fordeler
  5. ulemper
  6. Konklusjon

Sammenligningstabell:

GRUNN TIL SAMMENLIGNING LOKAL VARIABEL GLOBAL VARIABLE
Erklæring Variabler deklareres i en funksjon.
Variabler deklareres utenfor enhver funksjon.
omfang
Innenfor en funksjon, som de er deklarert i.Gjennom hele programmet.
Verdi
Uinitialisert lokal variabel resulterer i lagring av søppelverdien.Uinitialisert global variabel lagrer null som standard.
Adgang Kun tilgang til utsagnene, inne i en funksjon der de er erklært. Åpnes av enhver uttalelse i hele programmet.
DatadelingIkke inkludertTilrettelagt
LivOpprettet når funksjonsblokken legges inn og ødelegges ved avslutning. Forbli i eksistens hele tiden programmet ditt kjører.
Oppbevaring
Lokale variabler lagres på bunken med mindre det er spesifisert.
Lagres på et fast sted bestemt av en kompilator.
Parameter som passererNødvendig nødvendigIkke påkrevd for globale variabler.
Endringer i en variabel verdiEnhver modifisering som impliseres i en lokal variabel påvirker ikke programmets andre funksjoner.Endringene som brukes i den globale variabelen til en funksjon gjenspeiler endringene i hele programmet.

Definisjon av lokal variabel

EN lokal variabel blir alltid erklært inne i en funksjonsblokk. I C deklareres en lokal variabel i begynnelsen av en kodeblokk. I C ++ kan de deklareres hvor som helst i kodeblokken før bruk. Lokale variabler kan bare nås ved utsagnene skrevet i en funksjon der de lokale variablene er deklarert. De er sikre på en måte at de ikke kan nås av noen annen funksjon av det samme programmet.


Lokal variabel eksisterer til blokkeringen av funksjonen er i utførelse, og ødelegges derved etter utførelsen forlater blokken. Lokale variabler mister innholdet så snart utførelsen forlot blokken de er deklarert i.

Årsaken bak det er at de lokale variablene er lagret på stabelen med mindre spesiell lagring er spesifisert. Bunken har dynamisk karakter, og endringen i minneplassering fører til grunnen til at den lokale variabelen ikke holder verdien så snart blokkeringen av en funksjon eksisterer.

Merk:
Det er imidlertid en måte å beholde verdien på en lokal variabel ved å bruke den "statiske" modifisereren.

Definisjon av global variabel

EN global variabel er erklært utenfor alle funksjonene som er tilstede i et program. I motsetning til lokale variabler, kan du få tilgang til den globale variabelen av hvilken som helst funksjon som er til stede i et program. Globale variabler er ikke mye pålitelige, da verdien kan endres av en hvilken som helst funksjon som er tilstede i programmet.


De forblir til hele programmet blir fullstendig utført. Globale variabler beholder verdiene sine til programmet er i utførelse. Årsaken er at de er lagret i et fast minneområde, bestemt av kompilatoren.

En global variabel er nyttig i situasjoner der flere funksjoner får 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 til en global variabel.

  1. Lokale variabler kalles ‘lokal’ fordi de bare er kjent for utsagnene som er skrevet i en funksjon som de er erklært i og ikke kjent for noen annen funksjon som er til stede utenfor den funksjonsblokken. Når det gjelder en global variabel, er de kjent for hver funksjon som er tilstede i et program; derfor kalles de ‘global’.
  2. Globale variabler beholder verdien til programmet er i utførelsesfasen, ettersom de lagres på et fast sted bestemt av kompilatoren. Lokale variabler lagres på bunken; derfor beholder de ikke verdien sin ettersom ‘stack’ har dynamisk karakter, men kompilatoren kan ledes for å beholde verdien sin ved å bruke den ‘statiske’ modifikatoren.
  3. Hvis en global og en lokal variabel er deklarert med samme navn, vil alle utsagnene til en kodeblokk der den lokale variabelen er deklarert bare henvise til en lokal variabel og vil ikke ha noen effekt på en global variabel.
  4. En lokal variabel blir ødelagt når kontrollen av programmet går ut av blokken der den lokale variabelen er erklært. Imidlertid blir en global variabel ødelagt når hele programmet avsluttes.

Fordeler

Lokal variabel

  • Den viktigste fordelen med en lokal variabel er at det ikke skjer noen utilsiktet endring av dataene. Variabelen er deklarert i en blokk, og disse koden blokkerer variabelen og unngår uønskede bivirkninger.
  • Lokal variabel forbruker minne i en begrenset periode, bare når blokken som inneholder variabelen kjøres.

Global variabel

  • Globale variabler er veldig nyttige når du arbeider med flere funksjoner i programmet som manipulerer de samme dataene.
  • Endringer som måtte brukes i hele programmet ville være enklere gjennom implementering av en global variabel.
  • Vi kan få tilgang til hvor som helst eller gjennom hvilken som helst tilfeldig funksjon av programmet.

ulemper

Lokal variabel

  • Omfanget av den lokale variabelen er begrenset.
  • Forbuder deling av data.
  • De kan ikke beholde dataene mellom anropene fordi lokale variabler blir generert og fjernet med hver oppføring og avkjørsel fra blokken. Den statiske modifisereren kan imidlertid brukes til å beholde verdiene.

Global variabel

  • Bruk av et stort antall globale variabler kan føre til generering av programfeil.
  • Hovedproblemet som det forårsaker er utilsiktet forekomst av endringene på grunn av de spredte globale variablene gjennom hele programmet.
  • Det kan også øke behovet for å gjennomføre kodeforbedring, som er en veldig omfattende prosess der hele programkoden er omstrukturert.

Konklusjon:

De lokale og globale variablene er både nødvendige og like påkrevd når du skriver programmet. Å erklære et stort antall globale variabler kan imidlertid være problematisk i et massivt program, da det kan føre til uønskede endringer i en global variabel; og det ville bli vanskelig å identifisere hvilken del av et program som gjorde den endringen. Derfor bør man unngå å erklære unødvendige globale variabler.