Respuesta corta :
Solo si la variable estática se define en un archivo de encabezado, que se incluye en el archivo .c desde el que está intentando acceder a la variable. No a través de archivos .c y de otra manera. (Suponiendo que se refiera a declaraciones y definiciones globales)
Explicación:
Primero, comprendamos la vinculación. Cuando se compila un programa C de varios archivos, sucede lo siguiente.
Paso 1: para cada archivo .c: todos los encabezados de este archivo .c se incluyen de forma recursiva hasta que se crea un solo archivo con toda la fuente. Este archivo (llamado Unidad de traducción) se compila para generar un archivo .o (objeto) con el mismo nombre que el archivo .c.
Nota: Esto explica por qué es posible acceder a las variables estáticas definidas en cualquiera de los archivos de encabezado incluidos en su archivo .c.
Paso 2 – Vinculación: el proceso de vinculación conecta símbolos (nombres de variables, nombres de funciones declarados / definidos apropiadamente) a través de las unidades de traducción (es decir, a través de sus archivos .c) para generar el ejecutable final.
Ahora, la palabra clave static obliga a que el enlace sea interno. En otras palabras, estática asegura que el símbolo sea invisible fuera de su unidad de traducción actual. Esto significa que este símbolo no se puede vincular con ningún símbolo en otras unidades de traducción, lo que implica que es imposible acceder o modificar una variable estática declarada globalmente en un archivo .c desde otro.
- ¿Cuál es la forma de convertir MB en KB para una imagen?
- ¿Cuál es la mejor técnica para consolidar múltiples archivos PST en uno?
- Cómo acortar los múltiples archivos o nombres de archivo al agregar una imagen en HTML desde mi unidad
- ¿Es MIDI (un formato de música ‘.mid’) lo mismo que un pentagrama? Sé que una música en formato MIDI se puede convertir en un pentagrama. ¿Se puede convertir un pentagrama en un archivo MIDI?
- Cómo convertir un PDF a PDF de búsqueda gratis