¿Cuál es la diferencia entre variables globales estáticas y variables globales?
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.