Diferencia entre variable local y global

Autor: Laura McKinney
Fecha De Creación: 1 Abril 2021
Fecha De Actualización: 9 Mayo 2024
Anonim
Variables globales Vs variables locales |  | UPV
Video: Variables globales Vs variables locales | | UPV

Contenido


Como discutimos anteriormente, una variable es un nombre, dado a una ubicación de memoria, y debe declararse antes de usarse. En C, todas las variables se declaran al inicio del programa. En C ++, las variables se pueden declarar, en cualquier momento, antes de que se usen en las instrucciones.

Las variables se clasifican en variables "locales" y "globales", que es el tema principal de nuestra discusión. Aquí, la principal diferencia entre la variable local y la global es que una variable local se declara dentro de un bloque de funciones. Por el contrario, la variable global se declara fuera de las funciones del programa.

Estudiemos algunas diferencias más entre una variable local y una global junto con un cuadro de comparación.

  1. Cuadro comparativo
  2. Definición
  3. Diferencias clave
  4. Ventajas
  5. Desventajas
  6. Conclusión

Cuadro comparativo:

BASE PARA COMPARAR VARIABLE LOCAL VARIABLE GLOBAL
Declaración Las variables se declaran dentro de una función.
Las variables se declaran fuera de cualquier función.
Alcance
Dentro de una función, dentro de la cual se declaran.A lo largo del programa.
Valor
La variable local no inicializada da como resultado el almacenamiento del valor de basura.La variable global no inicializada almacena cero por defecto.
Acceso Se accede solo por las declaraciones, dentro de una función en la que se declaran. Accedido por cualquier declaración en todo el programa.
Compartir datosNo provistoFacilitado
VidaCreado cuando se ingresa el bloque de funciones y se destruye al salir. Permanezca en existencia todo el tiempo que su programa se esté ejecutando.
Almacenamiento
Las variables locales se almacenan en la pila a menos que se especifique.
Almacenado en una ubicación fija decidida por un compilador.
Paso de parámetrosNecesariamente requeridoNo se requiere para variables globales.
Cambios en un valor variableCualquier modificación implícita en una variable local no afecta las otras funciones del programa.Los cambios aplicados en la variable global de una función reflejan los cambios en todo el programa.

Definición de variable local

UNA variable local siempre se declara dentro de un bloque de funciones. En C, una variable local se declara al comienzo de un bloque de código. En C ++, se pueden declarar en cualquier parte del bloque de código antes de su uso. Solo se puede acceder a las variables locales mediante las declaraciones escritas dentro de una función en la que se declaran las variables locales. Son seguros en el sentido de que ninguna otra función del mismo programa puede acceder a ellos.


La variable local existe hasta que el bloque de la función está en ejecución y, por lo tanto, se destruye después de que la ejecución sale del bloque. Las variables locales pierden su contenido en cuanto la ejecución abandona el bloque en el que se declaran.

La razón detrás de esto es que las variables locales se almacenan en la pila a menos que se especifique su almacenamiento especial. La pila es de naturaleza dinámica, y el cambio en la ubicación de la memoria lleva a la razón por la cual la variable local no mantiene su valor tan pronto como existe el bloque de una función.

Nota:
Sin embargo, hay una manera de retener el valor de una variable local utilizando el modificador "estático".

Definición de variable global

UNA variable global se declara fuera de todas las funciones presentes en un programa. A diferencia de las variables locales, cualquier función presente en un programa puede acceder a la variable global. Las variables globales no son muy confiables ya que su valor puede ser cambiado por cualquier función presente en el programa.


Permanecen en existencia hasta que todo el programa se ejecute por completo. Las variables globales conservan sus valores hasta que el programa está en ejecución. La razón es que se almacenan en una región fija de memoria, decidida por el compilador.

Una variable global es útil en situaciones en las que varias funciones acceden a los mismos datos. El uso de una gran cantidad de variables globales puede ser problemático, ya que puede haber cambios no deseados en el valor de una variable global.

  1. Las variables locales se denominan "locales" porque solo son conocidas por las declaraciones escritas en una función dentro de la cual se declaran y no son conocidas por ninguna otra función presente fuera de ese bloque de funciones. En el caso de una variable global, son conocidas por todas y cada una de las funciones presentes en un programa; por lo tanto, se llaman "globales".
  2. Las variables globales conservan su valor hasta que el programa está en la fase de ejecución, ya que se almacenan en una ubicación fija decidida por el compilador. Las variables locales se almacenan en la pila; por lo tanto, no retienen su valor ya que "stack" es de naturaleza dinámica, pero el compilador puede ser dirigido a retener su valor, utilizando el modificador "static".
  3. Si una variable global y una local se declaran con el mismo nombre, todas las declaraciones de un bloque de código en el que se declara la variable local se referirán solo a una variable local y no causarán ningún efecto a una variable global.
  4. Una variable local se destruye cuando el control del programa sale del bloque en el que se declara la variable local. Sin embargo, una variable global se destruye cuando se termina todo el programa.

Ventajas

Variable local

  • El principal beneficio de una variable local es que no hay alteración accidental de los datos. La variable se declara dentro de un bloque, y este bloque de código usa la variable y evita efectos secundarios indeseables.
  • La variable local consume memoria durante una cantidad limitada del período, solo cuando se ejecuta el bloque que contiene la variable.

Variable global

  • Las variables globales son muy útiles cuando se trata de varias funciones en el programa que manipulan los mismos datos.
  • Los cambios que debían aplicarse en todo el programa serían más fáciles mediante la implementación de una variable global.
  • Podemos acceder desde cualquier lugar o mediante cualquier función aleatoria del programa.

Desventajas

Variable local

  • El alcance de la variable local está restringido.
  • Prohíbe el intercambio de datos.
  • No pueden retener los datos entre las llamadas porque las variables locales se generan y eliminan con cada entrada y salida del bloque. Sin embargo, el modificador estático se puede utilizar para retener los valores.

Variable global

  • El uso de una gran cantidad de variables globales podría generar errores en el programa.
  • El principal problema que causa es la ocurrencia accidental de los cambios debido a las variables globales diseminadas en todo el programa.
  • También podría aumentar la necesidad de realizar una refactorización de código, que es un proceso muy extenso donde se reestructura todo el código del programa.

Conclusión:

Las variables locales y globales son necesarias e igualmente necesarias al escribir el programa. Sin embargo, declarar una gran cantidad de variables globales podría ser problemático en un programa masivo, ya que puede causar cambios no deseados en una variable global; y sería difícil identificar qué parte de un programa realizó ese cambio. Por lo tanto, uno debe evitar declarar variables globales innecesarias.