Red de conocimiento informático - Consumibles informáticos - ¿Cuál es la diferencia entre variables globales estáticas y variables globales?

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

Las variables globales son variables globales que no se modifican explícitamente con estática. Son dinámicas por defecto y su alcance es todo el proyecto. Las variables globales se definen en un archivo y en otro archivo, las variables globales se pueden usar mediante la declaración del nombre de la variable global externa. Las variables estáticas globales son variables globales modificadas explícitamente con estática. El alcance es el archivo en el que se declara la variable, no se pueden usar otros archivos incluso si se declara mediante extern.

Las variables globales también se denominan variables externas, que son variables definidas fuera de la función. No pertenece a ninguna función, pertenece a un archivo de programa fuente. Su alcance es desde la ubicación donde se define la variable hasta el final del archivo fuente.

Las variables globales se definen fuera de todos los cuerpos de funciones y pueden ser utilizadas por partes del programa (incluso el código de otros archivos). Las variables globales no se ven afectadas por el alcance (es decir, su vida útil es hasta el final del programa). Si usa la palabra clave extern en un archivo para declarar variables globales que existen en otro archivo, entonces este archivo puede usar los datos.

Agregue una variable estática antes de la variable global para que esté disponible solo en este archivo fuente. Este archivo fuente se llama variable estática global. Las variables estáticas globales son variables globales estáticas.

En un programa compuesto por varios archivos, las variables globales son diferentes de las variables estáticas globales. El alcance de una variable declarada en un nivel termina al final del nivel en el que se encuentra la variable. La única diferencia es una variable estática global que la hace única para el archivo fuente en el que está definida. Si usa la palabra clave extern en un archivo para declarar una variable global estática que existe en otro archivo, ese archivo tampoco podrá usar esos datos.