Skillnad mellan lokal och global variabel

Författare: Laura McKinney
Skapelsedatum: 1 April 2021
Uppdatera Datum: 16 Maj 2024
Anonim
difference between local and global variables in c
Video: difference between local and global variables in c

Innehåll


Som vi diskuterade tidigare är en variabel ett namn som ges till en minnesplats och den måste deklareras innan den används. I C deklareras alla variabler i början av programmet. I C ++ kan variabler deklareras när som helst innan de används i instruktionerna.

Variabler klassificeras i "lokal" och "global" variabel, vilket är huvudtemat för vår diskussion. Här är huvudskillnaden mellan lokal och global variabel att en lokal variabel deklareras i ett funktionsblock. Däremot deklareras den globala variabeln utanför funktionerna i programmet.

Låt oss studera några fler skillnader mellan en lokal och en global variabel tillsammans med ett jämförelsediagram.

  1. Jämförelsediagram
  2. Definition
  3. Viktiga skillnader
  4. fördelar
  5. nackdelar
  6. Slutsats

Jämförelsediagram:

GRUND FÖR Jämförelse LOKAL VARIABEL GLOBAL VARIABEL
Deklaration Variabler deklareras i en funktion.
Variabler deklareras utanför någon funktion.
Omfattning
Inom en funktion, inuti vilken deklareras.Under hela programmet.
Värde
Oinitialiserad lokal variabel resulterar i lagring av avfallsvärdet.Oinitialiserad global variabel lagrar noll som standard.
Tillgång Åtkomst endast av uttalanden, inuti en funktion där de deklareras. Åtkomst till alla uttalanden i hela programmet.
DatadelningEj tillhandahållenförenklad
LivSkapas när funktionsblocket matas in och förstörs vid utgång. Förblir kvar hela tiden som ditt program kör.
Lagring
Lokala variabler lagras på stacken såvida det inte anges.
Lagras på en fast plats bestämd av en kompilator.
Parameter som passerarNödvändigt krävsKrävs inte för globala variabler.
Förändringar i ett variabelt värdeAlla ändringar som impliceras i en lokal variabel påverkar inte programmets andra funktioner.Ändringarna som tillämpas i den globala variabeln för en funktion återspeglar förändringarna i hela programmet.

Definition av lokal variabel

EN lokal variabel förklaras alltid i ett funktionsblock. I C deklareras en lokal variabel i början av ett kodblock. I C ++ kan de deklareras var som helst i kodblocket innan de används. Lokala variabler kan endast nås av de uttalanden som är skrivna i en funktion där de lokala variablerna deklareras. De är säkra på så sätt att de inte kan nås av någon annan funktion av samma program.


Lokal variabel finns tills funktionens block är i körning, och förstörs därmed efter att exekveringen lämnar blocket. Lokala variabler förlorar sitt innehåll så snart exekveringen lämnade blocket där de deklareras.

Anledningen bakom det är att de lokala variablerna lagras på stacken såvida inte deras speciella lagring anges. Bunten har dynamisk karaktär, och förändringen i minnesplatsen leder till anledningen till att den lokala variabeln inte håller sitt värde så fort blocket av en funktion finns.

Notera:
Det finns dock ett sätt att behålla värdet på en lokal variabel genom att använda den "statiska" modifieraren.

Definition av global variabel

EN global variabel deklareras utanför alla funktioner som finns i ett program. Till skillnad från lokala variabler kan den globala variabeln nås av alla funktioner som finns i ett program. Globala variabler är inte mycket tillförlitliga eftersom deras värde kan ändras med någon funktion som finns i programmet.


De finns kvar tills hela programmet körs fullständigt. Globala variabler behåller sina värden tills programmet är i körning. Anledningen är att de lagras i ett fast minne i beslutet av kompilatorn.

En global variabel är användbar i situationer där flera funktioner har åtkomst till samma data. Att använda ett stort antal globala variabler kan vara problematiskt, eftersom det kan vara oönskade värden på en global variabel.

  1. Lokala variabler kallas "lokala" eftersom de bara är kända för påståenden skrivna i en funktion inom vilken de deklareras och inte är kända för någon annan funktion som finns utanför det funktionsblocket. När det gäller en global variabel är de kända för varje funktion som finns i ett program; alltså kallas de 'globala'.
  2. Globala variabler behåller sitt värde tills programmet är i exekveringsfasen, eftersom de lagras på en fast plats bestämd av kompilatorn. Lokala variabler lagras på bunten; följaktligen behåller de inte sitt värde eftersom "stack" är dynamiskt till sin natur, men kompilatorn kan riktas för att behålla sitt värde genom att använda den "statiska" modifieraren.
  3. Om en global och en lokal variabel deklareras med samma namn, kommer alla påståenden om ett kodblock där den lokala variabelen deklareras endast att hänvisa till en lokal variabel och kommer inte att påverka en global variabel.
  4. En lokal variabel förstörs när kontrollen av programmet går ut ur blocket i vilket den lokala variabelen deklareras. En global variabel förstörs dock när hela programmet avslutas.

fördelar

Lokal variabel

  • Huvudfördelen med en lokal variabel är att det inte sker någon oavsiktlig förändring av uppgifterna. Variabeln deklareras inuti ett block, och dessa kodblock använder variabeln och undviker oönskade biverkningar.
  • Lokal variabel förbrukar minne under en begränsad mängd av perioden, endast när blocket som innehåller variabeln körs.

Global variabel

  • Globala variabler är mycket användbara när du har att göra med flera funktioner i programmet som manipulerar samma data.
  • Ändringar som behövde tillämpas i hela programmet skulle vara enklare genom att implementera en global variabel.
  • Vi kan komma åt var som helst eller via vilken som helst slumpmässig funktion av programmet.

nackdelar

Lokal variabel

  • Omfattningen av den lokala variabeln är begränsad.
  • Förbjuder datadelning.
  • De kan inte behålla data mellan samtalen eftersom lokala variabler genereras och tas bort med varje post och utgång från blocket. Den statiska modifieraren kan dock användas för att behålla värdena.

Global variabel

  • Användning av ett stort antal globala variabler kan leda till generering av programfel.
  • Det huvudsakliga problemet som det orsakar är en oavsiktlig förekomst av förändringarna på grund av de spridda globala variablerna i hela programmet.
  • Det kan också öka behovet av att utföra kodreformering, vilket är en mycket omfattande process där hela programkoden omstruktureras.

Slutsats:

De lokala och globala variablerna är både nödvändiga och lika krävda när du skriver programmet. Att förklara ett stort antal globala variabler kan emellertid vara problematiskt i ett massivt program, eftersom det kan orsaka oönskade ändringar av en global variabel. och det skulle bli svårt att identifiera vilken del av ett program som gjorde den förändringen. Därför bör man undvika att förklara onödiga globala variabler.