Hva er forskjellen mellom lokale og globale variabler?

Hva er forskjellen mellom lokale og globale variabler?


I dataprogrammering, er en variabel en navngitt minneområde som en programmerer kan bruke til å representere data i stedet for å legge inn data direkte inn i et program. Omfanget av en variabel er den region av programkildekoden i hvilket den representerer bestemte data. De fleste programmeringsspråk støtter både lokale og globale variabler, men noen viktige forskjeller mellom de to typene.

lokale variabler

Lokale variable finnes bare i funksjon - en navngitt seksjon av programkode som utfører en bestemt oppgave - som de er definert, eller erklært. De opphøre å eksistere når funksjonen er fullført. Lokale variabler er gjenskapt hver gang funksjonen kalles, eller henrettet. Disse variablene er ikke tilgjengelige for andre funksjoner eller til hovedprogrammet og, som sådan, er de vanligvis gjennomføres ved hjelp av en spesiell type datastruktur, kjent som en stabel.

Stable

I mange programmeringsspråk, er "stack" et sentralt element i gjennomføringen av lokale variabler. Før du utfører en funksjon, legger et program alle lokale variabler deklarert i den funksjonen av stabelen, i omvendt rekkefølge som de ble erklært. Når programmet kaller funksjonen, blir de lokale variabler fjernet fra stabelen i omvendt rekkefølge, slik at de mest nylig lagt variabel er den første en fjernet.

Globale variabler

Globale variabler deklareres i hoveddelen av programmet kildekoden, utenfor alle funksjoner, og de derfor eksistere hvor som helst i koden, selv inne funksjoner. Globale variabler er ikke gjenskapes hver gang en bestemt funksjon kalles. Programmer vanligvis bruke globale variabler til å lagre data som er behandlet av mange ulike funksjoner. En enkel tekstredigeringsprogram, for eksempel kan laste innholdet i filen det fungerer på i en global variabel.

Fordeler ulemper

Lokale variabler lage dataprogrammer lettere å feilsøke og vedlikeholde. Programmerere kan fastslå det nøyaktige punkt ved hvilket et program modifiserer verdien av en lokal variabel, mens globale variabler kan modifiseres hvor som helst i kildekoden. Lokale variabler også produsere færre uventede interaksjoner med ringer funksjoner eller omverdenen, kjent som bivirkninger, enn globale variabler. Globale variabler er tilgjengelige funksjoner i hvilken de ikke er i bruk, motsier begrepet modulære programmering, hvor programkoden består av små, isolerte blokker eller moduler, så programmerere som favoriserer den modulære strukturen sjelden bruker dem.