Fallo por multiple declaracion

comadreja
11 de Septiembre del 2003
Buenas, tengo un problema bastante tonto: tengo un fichero "cabecera.h" donde he declarado un tipo de datos y una variable global de dicho tipo. Si hago un include sobre este "cabecera.h" desde un unico archivo no pasa nada, pero si lo hago desde mas de uno me dice que estoy redefiniendo esa variable y que ya esta declarada. A que se debe esto? deberia incluir la declaracion de la variable entre #ifndef y #endif?

chuidiang
11 de Septiembre del 2003
Lo correcto es definir la variable global en un fichero .c (o .cpp o lo que sea). Por ejemplo

int global = 3;

Luego, en un .h debes poner esto

extern int global;

Los que necesiten la variable global (excepto el que la ha definido), debe hacer include de este fichero .h


Puedes probar a meter todo en un #ifndef. Si funciona adelante, pero posiblemente te de el mismo error en el linkado

Se bueno.