¿Cuál es la diferencia entre una variable externa y una variable global en C?

La palabra clave extern significa “el almacenamiento para esta variable se asigna a otro lugar”. Le dice al compilador “Estoy myGlobalvar referencia a myGlobalvar aquí, y no lo has visto antes, pero está bien; el enlazador sabrá de lo que estás hablando”. En su ejemplo específico, no es particularmente útil, porque el compilador sabe acerca de myGlobalvar : está definido anteriormente en la misma unidad de traducción (archivo .c o .cc ). Normalmente usa extern cuando quiere referirse a algo que no está en el unidad de traducción actual, como una variable definida en una biblioteca a la que se vinculará.

(Por supuesto, normalmente esa biblioteca declararía las variables extern para usted, en un archivo de encabezado que debe incluir).

https://stackoverflow.com/questi…

Global habla sobre la visibilidad de una variable (o función). Si una variable es global, puede acceder a ella en cualquier unidad de compilación (comúnmente llamada archivo fuente, módulo, etc.)

Si una variable se define globalmente, debería haber una manera de decirle al compilador sobre las posibles variables globales (o funciones) que podemos encontrar. La palabra clave extern está presente exactamente por la misma razón. Puede indicar el nombre y el tipo de variable seguido de extern que significa que esta variable está presente en una de las unidades de compilación (posiblemente actual) que se resolverá (vinculará) en el momento del enlace.

Si no usa extern , el compilador puede asumir cualquier función nueva como tomar argumentos variados y devolver int y puede dar lugar a resultados no deseados. Para variables desconocidas, el compilador interrumpe la compilación del programa. Además, un archivo que menciona un tipo incorrecto de variable global usando extern también puede causar resultados no deseados. Esa es la razón por la que se deben evitar las variables globales y, si se debe usar, se debe declarar con una palabra clave extern en exactamente un archivo de encabezado.

Una pregunta relacionada: declaración externa, T * v / s T []

Una variable global es variable, a la que se puede acceder desde cualquier parte del archivo en el que la definió.

Una variable externa también es una variable global a la que también se puede acceder en otros archivos. Solo tiene que declararlo como externo en cualquier archivo que esté tratando de usar.

Es posible crear una variable global en un archivo y acceder a ella desde otro archivo. Para hacer esto, la variable debe declararse en ambos archivos, pero la palabra clave extern debe preceder a la “segunda” declaración.

Las variables declaradas en el alcance global de una unidad de compilación tienen visibilidad global. Como un canal en una transmisión de radio FM. Puede escucharlo desde cualquier lugar si tiene un “receptor de radio”. Y este es el trabajo de la palabra clave ‘ externa ‘, es decir, proporcionar un “receptor de radio” a una unidad de compilación , para que pueda “escuchar” las “transmisiones globales” de todas las otras unidades de compilación y luego ” elegir el apropiado canal “ .

Lo externo tiene la palabra “externo” antes de su declaración, y lo global no. Excepto cuando alguien está siendo flojo con su lenguaje descriptivo.

No hay una diferencia real en lo que aparece en el archivo objeto o en los ejecutables. Cualquiera de los dos terminará en el segmento de datos inicializado o no inicializado con un nombre y una ubicación en ese segmento.

siga este enlace

Comprender la palabra clave “externa” en C – GeeksforGeeks

y gracias por la pregunta, porque hoy llegué a saber algo muy interesante en C

More Interesting

¿Cuál es la relación entre un código Huffman y la serie Fibonacci?

Si Kurt Godel estuviera vivo hoy, ¿podría probar el problema P vs NP?

¿Es necesaria la lógica equitativa en informática?

Dado un conjunto de datos sin clasificar de tamaño n, si usa la selección de clasificación para ordenar los datos, ¿cuántas búsquedas binarias necesitaría realizar en el conjunto de datos sin clasificar para "recomprar" el costo que conlleva la clasificación de sus datos si n = (2 ^ 4)?

¿Cuál sería la relación más efectiva entre las matemáticas y la programación en educación?

¿Cuáles son todas las aplicaciones conocidas de las técnicas de optimización de colonias de hormigas?

¿Es la formación lineal la mejor producción de clasificación?

Cómo calcular los componentes conectados, sin usar la función nx.connected_components (g) en NetworkX

¿Qué métodos de análisis deberían usarse cuando el nivel de la variable dependiente es mucho mayor que el número de variable independiente?

¿Es el código realmente ilegible sin los caracteres de espacio 'innecesarios'?

¿Cómo funciona el proceso de eliminación en una lista vinculada? ¿Es solo eliminando la referencia del nodo? ¿Qué mecanismo se utiliza para disponer un nodo?

En informática y lógica matemática, ¿qué es la capacidad de decisión y en qué se diferencia de la capacidad de computación?

¿Qué tan importante es el modelado matemático para los científicos de datos?

¿Qué temas o campos en el aprendizaje automático o la minería de datos requieren matemáticas de alto nivel?

En Python, ¿cómo sería el código si quisiera que el usuario ingrese un número de 3 dígitos y luego obtenga la suma de esos tres números individuales?