Diferența dintre variabila locală și globală

Autor: Laura McKinney
Data Creației: 1 Aprilie 2021
Data Actualizării: 14 Mai 2024
Anonim
difference between local and global variables in c
Video: difference between local and global variables in c

Conţinut


După cum am discutat anterior, o variabilă este un nume, dat unei locații de memorie și trebuie declarată înainte de a fi folosită. În C, toate variabilele sunt declarate la începutul programului. În C ++, variabilele pot fi declarate, în orice moment, înainte de a fi utilizate în instrucțiuni.

Variabilele sunt clasificate în variabilă „locală” și „globală”, care este principalul subiect al discuției noastre. Aici principala diferență între variabila locală și globală este că o variabilă locală este declarată în interiorul unui bloc de funcții. În schimb, variabila globală este declarată în afara funcțiilor din program.

Să studiem alte diferențe între o variabilă locală și una globală, împreună cu un grafic de comparație.

  1. Diagramă de comparație
  2. Definiție
  3. Diferențele cheie
  4. avantaje
  5. Dezavantaje
  6. Concluzie

Diagramă de comparație:

BAZĂ PENTRU COMPARARE VARIABIL LOCAL VARIABIL GLOBAL
Declaraţie Variabilele sunt declarate în interiorul unei funcții.
Variabilele sunt declarate în afara oricărei funcții.
domeniu
În cadrul unei funcții, în interiorul căreia sunt declarate.Pe tot parcursul programului.
Valoare
Variabila locală neinițializată are ca rezultat stocarea valorii gunoiului.Variabila globală inițializată stochează zero implicit.
Acces Accesat numai prin declarații, în cadrul unei funcții în care sunt declarate. Accesat de orice declarație din întregul program.
Schimb de dateNu e disponibil nu e asigurat nu e prevazutfacilitata
ViaţăCreat când blocul funcțional este introdus și distrus la ieșire. Rămâneți la dispoziție pentru toată perioada de execuție a programului.
Depozitare
Variabilele locale sunt stocate pe stivă, dacă nu sunt specificate.
Stocat pe o locație fixă, decis de un compilator.
Trecerea parametrilorNecesar necesarNu este necesar pentru variabile globale.
Modificări ale unei valori variabileOrice modificare implicată într-o variabilă locală nu afectează celelalte funcții ale programului.Modificările aplicate în variabila globală a unei funcții reflectă schimbările din întregul program.

Definiția Local Variable

A variabilă locală este întotdeauna declarat în interiorul unui bloc de funcții. În C, o variabilă locală este declarată la începutul unui bloc de cod. În C ++, acestea pot fi declarate oriunde în blocul de cod înainte de utilizarea lor. Variabilele locale pot fi accesate numai prin declarațiile scrise în interiorul unei funcții în care sunt declarate variabilele locale. Sunt sigure în sensul că nu pot fi accesate de nicio altă funcție a aceluiași program.


Variabila locală există până când blocul funcției este în execuție și, prin urmare, distrus după ce execuția iese din bloc. Variabilele locale își pierd conținutul imediat ce execuția a părăsit blocul în care sunt declarate.

Motivul din spatele ei este că variabilele locale sunt stocate pe stivă, dacă nu este specificată stocarea lor specială. Stiva este de natură dinamică, iar schimbarea locației memoriei duce la motivul pentru care variabila locală nu își păstrează valoarea imediat ce există blocul unei funcții.

Notă:
Cu toate acestea, există o modalitate de a păstra valoarea unei variabile locale folosind modificatorul „static”.

Definiția Global Variable

A variabilă globală este declarat în afara tuturor funcțiilor prezente într-un program. Spre deosebire de variabilele locale, variabila globală poate fi accesată de orice funcție prezentă într-un program. Variabilele globale nu sunt prea fiabile, deoarece valoarea lor poate fi modificată prin orice funcție prezentă în program.


Ele rămân în vigoare până când întregul program se execută complet. Variabilele globale își păstrează valorile până la executarea programului. Motivul este că acestea sunt stocate într-o regiune fixă ​​de memorie, decisă de compilator.

O variabilă globală este utilă în situațiile în care mai multe funcții accesează aceleași date. Utilizarea unui număr mare de variabile globale poate fi problematică, deoarece pot exista modificări nedorite ale valorii unei variabile globale.

  1. Variabilele locale sunt numite „locale”, deoarece sunt cunoscute numai de enunțurile scrise într-o funcție în interiorul căreia sunt declarate și nu sunt cunoscute de nicio altă funcție prezentă în afara blocului funcțional. În cazul unei variabile globale, ele sunt cunoscute fiecărei funcții prezente într-un program; prin urmare, ele sunt numite „globale”.
  2. Variabilele globale își păstrează valoarea până când programul este în faza de execuție, deoarece sunt stocate într-o locație fixă, decisă de compilator. Variabilele locale sunt stocate pe stivă; prin urmare, ele nu își păstrează valoarea, deoarece „stack” este de natură dinamică, dar compilatorul poate fi îndrumat să își păstreze valoarea, folosind modificatorul „static”.
  3. Dacă o variabilă globală și locală sunt declarate cu același nume, toate instrucțiunile unui bloc de cod în care este declarată variabila locală se vor referi doar la o variabilă locală și nu vor produce niciun efect asupra unei variabile globale.
  4. O variabilă locală este distrusă când controlul programului iese din blocul în care este declarată variabila locală. Cu toate acestea, o variabilă globală este distrusă atunci când întregul program este încheiat.

avantaje

Variabilă locală

  • Principalul beneficiu al unei variabile locale este că nu există o modificare accidentală a datelor. Variabila este declarată în interiorul unui bloc, iar aceste blocuri de cod utilizează variabila și evită efecte secundare nedorite.
  • Variabila locală consumă memorie pentru o perioadă limitată a perioadei, numai atunci când blocul care conține variabila este executat.

Variabilă globală

  • Variabilele globale sunt foarte utile atunci când aveți de-a face cu mai multe funcții din program care manipulează aceleași date.
  • Modificările care trebuiau aplicate în întregul program ar fi mai ușoare prin implementarea unei variabile globale.
  • Putem accesa de oriunde sau prin orice funcție aleatorie a programului.

Dezavantaje

Variabilă locală

  • Domeniul de aplicare al variabilei locale este restricționat.
  • Partajarea datelor interzise.
  • Nu sunt capabili să rețină datele între apeluri, deoarece variabilele locale sunt generate și eliminate cu fiecare intrare și ieșire din bloc. Cu toate acestea, modificatorul static poate fi utilizat pentru a păstra valorile.

Variabilă globală

  • Utilizarea unui număr mare de variabile globale poate duce la generarea de erori de program.
  • Principala problemă pe care o provoacă este apariția accidentală a modificărilor datorate variabilelor globale diseminate în întregul program.
  • De asemenea, ar putea crește nevoia de a efectua refactorizarea codului, ceea ce este un proces foarte extins în care se restructurare întregul cod de program.

Concluzie:

Ambele variabile locale și globale sunt necesare și la fel de necesare în timpul scrierii programului. Cu toate acestea, declararea unui număr mare de variabile globale poate fi problematică într-un program masiv, deoarece poate provoca modificări nedorite ale unei variabile globale; și ar deveni greu să identificăm ce parte a unui program a făcut această schimbare. Prin urmare, trebuie evitat să se declare variabile globale inutile.