Diferència entre variable local i global

Autora: Laura McKinney
Data De La Creació: 1 Abril 2021
Data D’Actualització: 16 Ser Possible 2024
Anonim
Diferència entre variable local i global - Tecnologia
Diferència entre variable local i global - Tecnologia

Content


Com hem comentat anteriorment, una variable és un nom, donat a una ubicació de memòria, i s’ha de declarar abans d’utilitzar-la. A C, totes les variables es declaren a l'inici del programa. A C ++, es poden declarar variables, en qualsevol moment, abans que s’utilitzin a les instruccions.

Les variables es classifiquen en variables "locals" i "globals", que és el tema principal de la nostra discussió. Aquí la diferència principal entre la variable local i la global és que es declara una variable local dins d’un bloc de funcions. En canvi, la variable global es declara fora de les funcions del programa.

Analitzem algunes diferències més entre una variable local i una variable global juntament amb un gràfic de comparació.

  1. Gràfic de comparació
  2. Definició
  3. Diferències claus
  4. Avantatges
  5. Desavantatges
  6. Conclusió

Gràfic de comparació:

BASES PER A LA COMPARACIÓ VARIABLE LOCAL VARIABLE GLOBAL
Declaració Les variables es declaren dins d’una funció.
Les variables es declaren fora de qualsevol funció.
Àmbit d’abast
Dins d'una funció, dins de la qual estan declarats.Al llarg del programa.
Valor
La variable local no inicialitzada dóna lloc a l'emmagatzematge del valor de les escombraries.La variable global no inicialitzada emmagatzema zero per defecte.
Accés Només hi podeu accedir per les declaracions, dins d’una funció en què es declaren. Hi podeu accedir qualsevol declaració de tot el programa.
Intercanvi de dadesNo proporcionatFacilitat
La vidaCreat quan s'introdueix i es destrueix el bloc de funcions a la sortida. Resteu en existència durant tot el temps que s’executa el vostre programa.
Emmagatzematge
Les variables locals s’emmagatzemen a la pila a menys que s’especifiqui.
Emmagatzemada en una ubicació fixa decidida per un compilador.
Paràmetre que passaNecessàriament obligatoriNo és necessari per a variables globals.
Canvis en un valor variableQualsevol modificació implicada en una variable local no afecta les altres funcions del programa.Els canvis aplicats a la variable global d’una funció reflecteixen els canvis en tot el programa.

Definició de variable local

A variable local sempre es declara dins d’un bloc de funcions. A C, es declara una variable local al començament d'un bloc de codi. En C ++, es poden declarar a qualsevol lloc del bloc de codis abans de la seva utilització. Només es pot accedir a les variables locals mitjançant les declaracions escrites en una funció en què es declaren les variables locals. Estan segurs en un sentit que, a cap altra funció del mateix programa, no poden accedir-hi.


Existeix una variable local fins que el bloc de la funció està en execució i, per tant, destruït després que l'execució surti del bloc. Les variables locals perden el seu contingut tan bon punt l'execució va deixar el bloc on es declaren.

El motiu que hi ha darrere és que les variables locals s’emmagatzemen a la pila a menys que s’especifiqui el seu emmagatzematge especial. La pila és de naturalesa dinàmica i el canvi en la ubicació de la memòria condueix a la raó per la qual la variable local no manté el seu valor tan bon punt existeixi el bloc d'una funció.

Nota:
No obstant això, hi ha una manera de retenir el valor d'una variable local mitjançant el modificador "estàtic".

Definició de variable global

A variable global es declara fora de totes les funcions presents en un programa. A diferència de les variables locals, es pot accedir a la variable global mitjançant qualsevol funció present en un programa. Les variables globals no són gaire fiables, ja que es pot canviar el seu valor per qualsevol funció present al programa.


Es mantenen fins que s’executi completament tot el programa. Les variables globals mantenen els seus valors fins que el programa estigui en execució. El motiu és que es guarden en una regió fixa de memòria, decidida pel compilador.

Una variable global és útil en situacions en què diverses funcions accedeixen a les mateixes dades. L'ús d'una gran quantitat de variables globals pot ser problemàtic, ja que pot haver-hi canvis no desitjats en el valor d'una variable global.

  1. Les variables locals s'anomenen "locals" perquè només són conegudes per les sentències escrites en una funció dins de la qual estan declarades i no coneixen cap altra funció present fora d'aquest bloc de funcions. En el cas d'una variable global, són conegudes per totes les funcions presents en un programa; per tant, se'ls anomena "globals".
  2. Les variables globals mantenen el seu valor fins que el programa estigui en fase d’execució, ja que s’emmagatzemen en un lloc fix decidit pel compilador. Les variables locals s’emmagatzemen a la pila; per tant, no mantenen el seu valor ja que la pila és de naturalesa dinàmica, però el compilador es pot dirigir a retenir el seu valor mitjançant el modificador "estàtic".
  3. Si es declara una variable global i una local amb el mateix nom, totes les declaracions d’un bloc de codi en què es declara una variable local només es refereixen a una variable local i no produiran cap efecte sobre una variable global.
  4. Una variable local es destrueix quan el control de la sortida del programa és fora del bloc on es declara la variable local. Tanmateix, es destrueix una variable global quan es finalitza tot el programa.

Avantatges

Variable local

  • El principal avantatge d’una variable local és que no hi ha cap alteració accidental de les dades. La variable es declara dins d’un bloc i aquests blocs de codi utilitzen la variable i eviten efectes secundaris no desitjables.
  • La variable local consumeix memòria durant una quantitat limitada del període, només quan s'executa el bloc que conté la variable.

Variable global

  • Les variables globals són molt útils quan es tracta de diverses funcions del programa manipulant les mateixes dades.
  • Els canvis que calia aplicar a tot el programa serien més fàcils mitjançant la implementació d'una variable global.
  • Podem accedir des de qualsevol lloc o mitjançant qualsevol funció aleatòria del programa.

Desavantatges

Variable local

  • L’àmbit de la variable local està restringit.
  • Intercanvi de dades de fòrums.
  • No són capaços de retenir les dades entre les trucades perquè es generen i s’eliminen variables locals amb cada entrada i sortida del bloc. Tot i això, es pot utilitzar el modificador estàtic per retenir els valors.

Variable global

  • L'ús d'una gran quantitat de variables globals pot produir errors en el programa.
  • El principal problema que provoca és l’ocurrència accidental dels canvis deguts a les variables globals difoses a tot el programa.
  • També podria augmentar la necessitat de realitzar la refactorització de codis, que és un procés molt extens on es reestructura el codi complet del programa.

Conclusió:

Les variables locals i globals són necessàries i són iguals necessàries per escriure el programa. Tanmateix, declarar un gran nombre de variables globals podria ser problemàtic en un programa massiu, ja que pot provocar canvis no desitjats en una variable global; i seria difícil identificar aquella part d’un programa que va fer aquest canvi. Per tant, cal evitar declarar variables globals innecessàries.