Verschil tussen lokale en globale variabele

Belangrijkste verschillen tussen lokale variabele en globale variabele

  • De lokale variabele wordt binnen een functie gedeclareerd, terwijl de globale variabele buiten de functie wordt gedeclareerd.
  • Lokale variabelen worden gemaakt wanneer de uitvoering van de functie is gestart en gaan verloren wanneer de functie eindigt. Aan de andere kant wordt een globale variabele gemaakt wanneer de uitvoering begint en gaat verloren wanneer het programma eindigt.
  • De lokale variabele biedt geen gegevensuitwisseling, terwijl de globale variabele gegevensuitwisseling mogelijk maakt.
  • Lokale variabelen worden op de stapel opgeslagen, terwijl de globale variabele wordt opgeslagen op een vaste locatie die wordt bepaald door de compiler.
  • Het doorgeven van parameters is vereist voor lokale variabelen, terwijl dit niet nodig is voor een globale variabele

Verschil tussen lokale en globale variabele

Wat is een variabele?

Variabel is een naam die wordt toegewezen aan een opslaggebied dat door het programma kan worden gemanipuleerd. Een variabelentype bepaalt de grootte en indeling van het geheugen van de variabele.

Het bepaalt ook het bereik van de waarden die in dat geheugen moeten worden opgeslagen en de aard van de bewerkingen die op die variabele kunnen worden toegepast.

Reikwijdte van variabelen

De reikwijdte van de variabele is eenvoudigweg de levensduur van een variabele. Het is een codeblok waaronder een variabele toepasbaar of levend is. Bijvoorbeeld:

function foo(){
var x;
}

Je declareert een variabele ‘x’ binnen een functie ‘foo’. Het bereik van die variabele blijft binnen die functie en kan niet buiten die functie worden gebruikt.
Er zijn drie plaatsen waar u variabelen voor variabele programmeertaal kunt declareren:

  • Binnen een functie of een blok: Lokale variabelen
  • Buiten alle functies: Globale variabelen
  • In de definitie van functieparameters: Formele parameters

Lokale variabele

Lokale variabele wordt gedefinieerd als een type variabele dat is gedeclareerd binnen een programmeerblok of subroutines. Het kan alleen worden gebruikt binnen de subroutine of het codeblok waarin het is gedeclareerd. De lokale variabele bestaat totdat het blok van de functie wordt uitgevoerd. Daarna wordt het automatisch vernietigd.

Voorbeeld van lokale variabele

public int add(){
int a =4;
int b=5;
return a+b;
}

Hier zijn 'a' en 'b' lokale variabelen

Globale variabele

A Globale variabele in het programma is een variabele gedefinieerd buiten de subroutine of functie. Het heeft een mondiale reikwijdte, wat betekent dat het zijn waarde behoudt gedurende de gehele looptijd van het programma. Daarom is het overal in het programma toegankelijk voor elke functie die in het programma is gedefinieerd, tenzij deze in de schaduw staat.

Voorbeeld:

int a =4;
int b=5;
public int add(){
return a+b;
}

Hier zijn 'a' en 'b' globale variabelen.

Lokale variabele versus globale variabelen

Hier volgen enkele fundamentele verschillen tussen lokale en globale variabelen.

Parameter Lokale Globaal
strekking Het wordt binnen een functie gedeclareerd. Het wordt buiten de functie gedeclareerd.
Waarde Als het niet wordt geïnitialiseerd, wordt een afvalwaarde opgeslagen Als deze niet is geïnitialiseerd, wordt nul als standaard opgeslagen.
Levensduur Het wordt gemaakt wanneer de functie wordt uitgevoerd en gaat verloren wanneer de functies eindigen. Het wordt aangemaakt voordat de globale uitvoering van het programma start en gaat verloren wanneer het programma eindigt.
Het delen van gegevens Het delen van gegevens is niet mogelijk omdat gegevens van de lokale variabele slechts door één functie toegankelijk zijn. Het delen van gegevens is mogelijk omdat meerdere functies toegang hebben tot dezelfde globale variabele.
parameters Het doorgeven van parameters is vereist voor lokale variabelen om toegang te krijgen tot de waarde in een andere functie Het doorgeven van parameters is niet nodig voor een globale variabele, aangezien deze door het hele programma heen zichtbaar is
Wijziging van variabele waarde Wanneer de waarde van de lokale variabele in één functie wordt gewijzigd, zijn de wijzigingen niet zichtbaar in een andere functie. Wanneer de waarde van de globale variabele in één functie wordt gewijzigd, zijn de veranderingen zichtbaar in de rest van het programma.
Toegankelijk door Lokale variabelen zijn toegankelijk met behulp van instructies, binnen een functie waarin ze worden gedeclareerd. U kunt via elke instructie in het programma toegang krijgen tot globale variabelen.
Geheugenopslag Het wordt op de stapel opgeslagen, tenzij anders aangegeven. Het wordt opgeslagen op een vaste locatie die door de compiler wordt bepaald.

Voordelen van het gebruik van globale variabelen

  • U hebt toegang tot de globale variabele vanuit alle functies of modules in een programma
  • U hoeft de globale variabele slechts één keer buiten de modules te declareren.
  • Het wordt ideaal gebruikt voor het opslaan van "constanten", omdat het u helpt de consistentie te behouden.
  • Een globale variabele is handig wanneer meerdere functies toegang hebben tot dezelfde gegevens.

Voordelen van het gebruik van lokale variabelen

  • Het gebruik van lokale variabelen biedt een garantie dat de waarden van variabelen intact blijven terwijl de taak wordt uitgevoerd
  • Als meerdere taken een enkele variabele veranderen die tegelijkertijd wordt uitgevoerd, kan het resultaat onvoorspelbaar zijn. Maar door het te declareren als lokale variabele wordt dit probleem opgelost, omdat elke taak zijn eigen exemplaar van de lokale variabele maakt.
  • U kunt lokale variabelen in verschillende functies dezelfde naam geven, omdat ze alleen worden herkend door de functie waarin ze zijn gedeclareerd.
  • Lokale variabelen worden verwijderd zodra een functie voorbij is en maken de geheugenruimte vrij die deze in beslag neemt.

Nadelen van het gebruik van globale variabelen

  • Te veel variabelen die als globaal zijn gedeclareerd, blijven in het geheugen totdat de uitvoering van het programma is voltooid. Dit kan een probleem met onvoldoende geheugen veroorzaken.
  • Gegevens kunnen door elke functie worden gewijzigd. Elke instructie die in het programma wordt geschreven, kan de waarde van de globale variabele wijzigen. Dit kan onvoorspelbare resultaten opleveren in omgevingen met meerdere taken.
  • Als globale variabelen worden stopgezet vanwege coderefactoring, moet u alle modules wijzigen waarin ze worden aangeroepen.

Nadelen van het gebruik van lokale variabelen

  • Het foutopsporingsproces van een lokale variabele is behoorlijk lastig.
  • Gemeenschappelijke gegevens moeten herhaaldelijk worden doorgegeven, omdat het delen van gegevens niet mogelijk is tussen modules.
  • Ze hebben een zeer beperkte reikwijdte.

Wat is nuttiger?

De lokale en globale variabele zijn even belangrijk bij het schrijven van een programma in welke taal dan ook. Een groot deel van de globale variabele kan echter een enorm geheugen in beslag nemen. Een ongewenste verandering in globale variabelen is moeilijk te identificeren. Daarom is het raadzaam om te voorkomen dat ongewenste globale variabelen worden gedeclareerd.