lectura de

La palabra reservada de C extern se utiliza cuando usamos librerías y multiples archivos que la utilizan, en general proyectos grandes.

Es importante diferenciar dos palabras claves: - Definición: El compilador reserva memoria para almacenar la variable - Declaración: El compilador es informado de que la variable existe, y que tipo de dato es (Pero no reserva memoria para almacenarla)

Ahora supongamos que tenemos una librería con cabecera llamada: mi_libreria.h y dentro tiene una variable declarada como extern:

#####mi_libreria.h

...
extern int is_cool;
...

y tenemos un archivo principal main.c

#####main.c#####

#include "mi_libreria.h"

int is_cool;

int main() {
	is_cool = 1;
}
...

Y por último tenemos un tercer archivo con funciones que tambien utiliza la librería

#####funciones.c#####

#include "mi_libreria.h"

void una_funcion() {
	...
	if (is_cool) puts("He is cool");
	...
}

Tenemos 3 archivos. main.c, funciones.c y mi_libreria.h. tanto main.c como funciones.c usan dicha librería.
En la librería declaramos la variable is_cool.
En main.c definimos la variable is_cool.
Al definirla, el compilador comprueba que el tipo de dato que estamos definiendo sea el mismo que el declarado en la librería.

Ahora la variable is_cool es una variable global (pero muy global, por que es la misma en diferentes archivos)

####Reglas Generales####

  • Un extern solo se utiliza en archivos header (o de cabecera). Nunca en un archivo fuente (.c)
  • Definir una variable extern solo en un archivo fuente. Solo hace falta definirla una vez.

Eso es todo lo que tengo que decir sobre extern en C.

Blog Logo

Juan Pablo Escalona G.


Publicado el

comments powered by Disqus
Image

JPEG {codes}

Códigos azarosos en múltiples lenguajes, JavaScript, Ruby, C, Python. Bienvenidos aquellos que quieran aprender.

Volver al inicio