¿Cuál es la diferencia entre variables locales y globales?

Por david dunning
¿Cuál es la diferencia entre variables locales y globales?
Stockbyte/Stockbyte/Getty Images

En programación de computadoras, una variable es una ubicación de memoria con nombre que un programador puede utilizar para representar datos en lugar de introducirlos directamente en un programa. El alcance de una variable es la región del código fuente del programa dentro del cual se representa ciertos datos. La mayoría de los lenguajes de programación soportan tanto variables locales como globales, sin embargo, existen algunas diferencias importantes entre los dos tipos.

Variables locales

Las variables locales sólo existen dentro de una función, una sección del código del programa que realiza una tarea específica, en la que se definen o declaran. Dejan de existir una vez que la función es ejecutada. Las variables locales se vuelven a crear cada vez que la función es llamada, o ejecutada. Estas variables no son accesibles para otras funciones o para el programa principal y, como tal, por lo general están implementados utilizando un tipo especial de estructura de datos, conocido como pila.

Pila

En muchos lenguajes de programación, la "pila" es un elemento clave en la implementación de variables locales. Antes de ejecutar una función, un programa añade todas las variables locales declaradas en esa función en la pila, en orden inverso en que han sido declaradas. Cuando el programa llama a la función, las variables locales se quitan de la pila en orden inverso, por lo que la variable más recientemente añadida es la primera en ser eliminada.

Variables globales

Las variables globales son declaradas en el cuerpo principal del código fuente del programa, fuera de todas las funciones, y por lo tanto existen en cualquier parte del código, incluso dentro de las funciones. Las variables globales no se vuelven a crear cada vez que una función en particular es llamada. Los programas suelen utilizar variables globales para almacenar datos que son procesados ​​por muchas funciones diferentes. Un programa de edición de texto simple, por ejemplo, puede cargar el contenido del archivo en que se está trabajando en una variable global.

Ventajas y desventajas

Las variables locales hacen que los programas de computadora sean más fáciles de depurar y mantener. Los programadores pueden determinar el punto exacto en el que un programa modifica el valor de una variable local, mientras que las variables globales pueden ser modificadas en cualquier lugar dentro del código fuente. Las variables locales también producen menos interacciones inesperadas con llamadas a funciones, o el mundo exterior, conocidas como efectos secundarios, que las variables globales. Las variables globales son accesibles en funciones en las que no son utilizadas, en contradicción con el concepto de programación modular, en el que el código del programa se compone de bloques o módulos pequeños aislados, por lo que los programadores que favorecen la estructura modular rara vez las utilizan.