Variable global

Definición: ¿Qué significa variable global?

Una variable global es una construcción del lenguaje de programación, un tipo de variable que se declara fuera de cualquier función y es accesible para todas las funciones del programa. Un grupo de variables globales se denomina estado global o entorno global porque cuando se combinan, definen varios aspectos de un programa o el entorno cuando se ejecuta el programa. Por lo general, una variable global se declara encima de todas las funciones y se mantiene al mínimo, ya que todas las funciones pueden manipularlas durante el tiempo de ejecución del programa, lo que la mayoría de los programadores considera peligroso porque pueden modificarse accidentalmente y provocar errores.

Techinfo explica la variable global

Las variables globales, como su nombre lo indica, son variables a las que se puede acceder globalmente o en todas partes del programa. Una vez declarados, permanecen en la memoria durante todo el tiempo de ejecución del programa. Esto significa que pueden ser modificados por cualquier función en cualquier momento y pueden afectar al programa como un todo. Durante los primeros años de las computadoras donde la memoria era muy limitada, se consideraron una mala práctica porque ocupaban un valioso espacio de memoria y era muy fácil para el programador perder la pista de sus valores, especialmente en programas largos, lo que generaba errores que pueden ser muy difícil de localizar. El código fuente se comprende mejor cuando el alcance de sus elementos individuales es limitado, por lo que debido a su no localidad, es difícil hacer un seguimiento de dónde se han modificado o por qué se han modificado.

Incluso con este estigma, las variables globales son valiosas en funciones que no comparten una relación "llamador y destinatario", como los manejadores de señales y los hilos concurrentes. Con la excepción de las variables globales declaradas como valores de solo lectura en la memoria protegida, los códigos deben implementar la encapsulación adecuada para ser considerados "seguros para subprocesos".

Las primeras versiones de lenguajes no estructurados como BASIC, COBOL y Fortran solo usaban variables globales. Sin embargo, lenguajes como Lua, Forth y Perl usan variables globales de forma predeterminada, al igual que la mayoría de los scripts de shell.