Verschil tussen lokale en globale variabele

Schrijver: Laura McKinney
Datum Van Creatie: 1 April 2021
Updatedatum: 16 Kunnen 2024
Anonim
difference between local and global variables in c
Video: difference between local and global variables in c

Inhoud


Zoals we eerder hebben besproken, is een variabele een naam die aan een geheugenlocatie wordt gegeven en moet deze worden gedeclareerd voordat deze wordt gebruikt. In C worden alle variabelen aangegeven aan het begin van het programma. In C ++ kunnen variabelen op elk moment worden gedeclareerd voordat ze in de instructies worden gebruikt.

Variabelen worden ingedeeld in ‘lokale’ en ‘globale’ variabele, het belangrijkste onderwerp van onze discussie. Het belangrijkste verschil tussen lokale en globale variabele is hier dat een lokale variabele binnen een functieblok wordt gedeclareerd. De globale variabele daarentegen wordt buiten de functies in het programma gedeclareerd.

Laten we wat meer verschillen tussen een lokale en een globale variabele bestuderen, samen met een vergelijkingstabel.

  1. Vergelijkingstabel
  2. Definitie
  3. Belangrijkste verschillen
  4. voordelen
  5. nadelen
  6. Gevolgtrekking

Vergelijkingstabel:

BASIS VOOR VERGELIJKING LOKALE VARIABEL GLOBALE VARIABELE
Verklaring Variabelen worden binnen een functie gedeclareerd.
Variabelen worden buiten elke functie gedeclareerd.
strekking
Binnen een functie, waarbinnen ze worden verklaard.Gedurende het programma.
Waarde
Niet-geïnitialiseerde lokale variabele resulteert in opslag van de afvalwaarde.Niet-geïnitialiseerde globale variabele slaat standaard nul op.
Toegang Alleen toegankelijk via de verklaringen, binnen een functie waarin ze worden verklaard. Toegankelijk voor elke verklaring in het gehele programma.
Het delen van gegevensNiet voorzienFacilitated
LevenWordt gemaakt wanneer het functieblok wordt ingevoerd en vernietigd bij het verlaten. Blijf bestaan ​​zolang uw programma wordt uitgevoerd.
opslagruimte
Lokale variabelen worden op de stapel opgeslagen tenzij gespecificeerd.
Opgeslagen op een vaste locatie bepaald door een compiler.
Parameter doorgevenNoodzakelijkNiet vereist voor globale variabelen.
Veranderingen in een variabele waardeElke wijziging die wordt geïmpliceerd in een lokale variabele heeft geen invloed op de andere functies van het programma.De wijzigingen die worden toegepast in de globale variabele van een functie, weerspiegelen de wijzigingen in het hele programma.

Definitie van lokale variabele

EEN lokale variabele wordt altijd gedeclareerd in een functieblok. In C wordt een lokale variabele aan het begin van een codeblok gedeclareerd. In C ++ kunnen ze overal in het codeblok worden gedeclareerd voordat ze worden gebruikt. Lokale variabelen zijn alleen toegankelijk via de instructies die zijn geschreven in een functie waarin de lokale variabelen worden gedeclareerd. Ze zijn veilig in die zin dat ze niet toegankelijk zijn voor een andere functie van hetzelfde programma.


Er bestaat een lokale variabele totdat het blok van de functie wordt uitgevoerd en daardoor wordt vernietigd nadat de uitvoering het blok verlaat. Lokale variabelen verliezen hun inhoud zodra de uitvoering het blok verlaat waarin ze worden gedeclareerd.

De reden hierachter is dat de lokale variabelen op de stapel worden opgeslagen, tenzij hun speciale opslag is opgegeven. De stapel is dynamisch van aard en de verandering in geheugenlocatie leidt tot de reden waarom de lokale variabele hun waarde niet behoudt zodra het blok van een functie bestaat.

Opmerking:
Er is echter een manier om de waarde van een lokale variabele te behouden door de ‘statische’ modifier te gebruiken.

Definitie van globale variabele

EEN globale variabele wordt gedeclareerd buiten alle functies die in een programma aanwezig zijn. In tegenstelling tot lokale variabelen is de globale variabele toegankelijk voor elke functie in een programma. Globale variabelen zijn niet erg betrouwbaar omdat hun waarde kan worden gewijzigd door elke functie in het programma.


Ze blijven bestaan ​​totdat het hele programma volledig wordt uitgevoerd. Globale variabelen behouden hun waarden totdat het programma wordt uitgevoerd. De reden is dat ze worden opgeslagen op een vast geheugengebied, bepaald door de compiler.

Een globale variabele is handig in situaties waarin meerdere functies toegang hebben tot dezelfde gegevens. Het gebruik van een groot aantal globale variabelen kan problematisch zijn, omdat er mogelijk ongewenste wijzigingen zijn in de waarde van een globale variabele.

  1. Lokale variabelen worden ‘lokaal’ genoemd omdat ze alleen bekend zijn bij de instructies die zijn geschreven in een functie waarbinnen ze worden gedeclareerd en niet bekend zijn bij een andere functie die buiten dat functieblok aanwezig is. In het geval van een globale variabele zijn ze bekend bij elke functie in een programma; daarom worden ze ‘global’ genoemd.
  2. Globale variabelen behouden hun waarde totdat het programma zich in de uitvoeringsfase bevindt, omdat ze worden opgeslagen op een vaste locatie die door de compiler wordt bepaald. Lokale variabelen worden op de stapel opgeslagen; daarom behouden ze hun waarde niet omdat ‘stack’ dynamisch van aard is, maar de compiler kan worden gestuurd om hun waarde te behouden, door de ‘statische’ modifier te gebruiken.
  3. Als een globale en een lokale variabele met dezelfde naam worden gedeclareerd, verwijzen alle instructies van een codeblok waarin lokale variabele wordt gedeclareerd alleen naar een lokale variabele en hebben geen effect op een globale variabele.
  4. Een lokale variabele wordt vernietigd wanneer de besturing van het programma het blok verlaat waarin de lokale variabele is gedeclareerd. Een globale variabele wordt echter vernietigd wanneer het hele programma wordt beëindigd.

voordelen

Lokale variabele

  • Het belangrijkste voordeel van een lokale variabele is dat de gegevens niet per ongeluk worden gewijzigd. De variabele wordt binnen een blok gedeclareerd en dit codeblok gebruikt de variabele en voorkomt ongewenste bijwerkingen.
  • Lokale variabele verbruikt geheugen gedurende een beperkte periode, alleen wanneer het blok met de variabele wordt uitgevoerd.

Globale variabele

  • Globale variabelen zijn erg handig als u te maken hebt met verschillende functies in het programma die dezelfde gegevens manipuleren.
  • Veranderingen die in het hele programma moesten worden doorgevoerd, zouden gemakkelijker zijn door de implementatie van een globale variabele.
  • We hebben overal toegang of via een willekeurige functie van het programma.

nadelen

Lokale variabele

  • Het bereik van de lokale variabele is beperkt.
  • Verbiedt het delen van gegevens.
  • Ze kunnen de gegevens tussen de aanroepen niet behouden omdat lokale variabelen worden gegenereerd en verwijderd bij elke ingang en uitgang van het blok. De statische modificator kan echter worden gebruikt om de waarden te behouden.

Globale variabele

  • Gebruik van een groot aantal globale variabelen kan leiden tot het genereren van programmafouten.
  • Het belangrijkste probleem dat het veroorzaakt, is het per ongeluk optreden van de veranderingen als gevolg van de verspreide globale variabelen in het programma.
  • Het kan ook de noodzaak doen ontstaan ​​om code-refactoring uit te voeren, wat een zeer uitgebreid proces is waarbij de hele programmacode wordt geherstructureerd.

Gevolgtrekking:

De lokale en globale variabelen zijn beide noodzakelijk en even nodig tijdens het schrijven van het programma. Het declareren van een groot aantal globale variabelen kan echter problematisch zijn in een enorm programma, omdat dit ongewenste wijzigingen in een globale variabele kan veroorzaken; en het zou moeilijk worden om te achterhalen welk deel van een programma die verandering heeft aangebracht. Daarom moet men vermijden onnodige globale variabelen te declareren.