Variabler klassificeras vidare i "lokal" och "global" variabel, vilket är huvudämnet för vår diskussion. Här är den största skillnaden mellan en lokal och en global variabel, att en lokal variabel deklareras i ett funktionsblock, där som den globala variabeln deklareras 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örelsestabell.
Jämförelsediagram:
Grunder för jämförelse | Lokal variabel | Global variabel |
---|---|---|
Deklaration | Variabler förklaras inom en funktion. | Variabler förklaras utanför vilken funktion som helst. |
Omfattning | Inom en funktion, inom vilken de deklareras. | Under hela programmet. |
Tillgång | Åtkomst endast genom uttalandena, inne i en funktion där de deklareras. | Åtkomst av något uttalande i hela programmet. |
Liv | Skapas när funktionsblocket är inmatat och förstört vid utgången. | Bibehålla hela tiden som ditt program körs. |
Lagring | Lokala variabler lagras på stapeln, om inte specificerat. | Lagras på en fast plats bestämd av en kompilator. |
Definition av lokalvariabel
En lokal variabel anges alltid inom 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 skrivits in i en funktion där den lokala variabeln deklareras. De är säkra på ett sätt att de inte kan nås av någon annan funktion av samma program.
Lokal variabel existerar tills blocken av funktionen är i körning och därigenom förstörs efter att exekveringen lämnar blocket. Lokala variabler förlorar sitt innehåll så snart exekveringen lämnat blocket där de deklareras.
Anledningen till det är att de lokala variablerna lagras på stapeln såvida inte deras speciella lagring anges. Stacken är dynamisk och förändringen i minnesplats leder till anledningen till att lokalvariabeln inte håller sitt värde så snart funktionsblocket 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 vilken funktion som helst i ett program. Globala variabler är inte mycket tillförlitliga eftersom deras värde kan ändras av någon funktion som finns i programmet.
Globala variabler kvarstår tills hela programmet körs fullständigt. Globala variabler behåller sina värden tills programmet körs. Anledningen är att de lagras på en fast minnesregion, bestämd av kompilatorn.
En global variabel är till hjälp i situationer där flera funktioner använder samma data. Att använda ett stort antal globala variabler kan vara problematisk, eftersom det kan vara oönskade förändringar av värdet av en global variabel.
Huvudskillnad mellan lokal och global variabel.
- Lokala variabler kallas "lokala" eftersom de endast är kända för de uttalanden som skrivits i en funktion inom vilken de deklareras och inte är kända för någon annan funktion som befinner sig utanför det funktionsblocket. I fråga om global variabel är de kända för varje funktion som är närvarande i ett program; Därför kallas de "globala".
- Globala variabler bibehåller sitt värde tills programmet ligger i körningsfasen, eftersom de lagras på en fast plats bestämd av kompilatorn. Lokala variabler lagras på stapeln; Därför behåller de inte sitt värde eftersom "stack" är dynamisk i naturen, men kompilatorn kan riktas för att behålla sitt värde genom att använda den "statiska" modifieraren.
- Om en global och en lokal variabel deklareras med samma namn så kommer alla uttalanden av ett kodblock där lokal variabel deklareras endast att referera till en lokal variabel och kommer inte att orsaka någon effekt på en global variabel.
- En lokal variabel förstörs när kontrollen av programmet går ut ur blocket där lokal variabel deklareras. En global variabel förstörs dock när hela programmet avslutas.
Slutsats:
De lokala och globala variablerna är båda lika krävande när du skriver programmet. Men att förklara ett stort antal globala variabler kan vara problematiskt i ett stort program, eftersom det kan orsaka oönskade förändringar av en global variabel; och det skulle bli svårt att identifiera vilken del av ett program som gjordes som förändras. Därför bör man undvika att förklara onödiga globala variabler.