Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Simbolo Ya Definido

Iniciado por Sacrifai, 18 de Enero de 2006, 08:12:59 PM

« anterior - próximo »

Sacrifai

 Resulta que tengo una cabezera, con sus guardias de inclusión. En ella se declara un objeto que se usará en las cabezaras de otras tantas clases. Resulta que al compilar me dice que ya está definido... ¡pero si las guardias de inclusión están bien! ¿Como puedo arreglar esto?

PD: He leido un thread antiguo de uno que le pasaba lo mismo, él usó extern, pero a mi no me sirve tampoco.

_Grey

 Me gustaria ver esas "guardias" de inclusion..... si estan bien , simplemente no deberia pasar, quiza te se paso algo por alto que los demas podamos ver.

Por otro lado, por que no te sirve un extern?

Saludos.

[EDIT]
dentro de las "guardias" de intrusion, creas una instancia del objeto, o te refieres a la definicion de la clase. Entiendo que debe ser lo segundo, de ahi que no te sirva el extern, deduzco.

zupervaca

 ¿Puedes poner el .h para que lo veamos y asi decirte?

Tambien esta el clasico problema en el que se incluye pepe.h en luis.h y en luis.h el pepe.h y se quedan de forma recursiva y suele dar ese error.

Warchief

 
// MiFichero.h
extern MiTipo MiVariable; // Exporta la variable para poder usarla fuera

// MiFichero.c
#include "MiFichero.h"
MiTipo MiVariable; // Define la variable

foo1() {
 MiVariable = 1;
}

// Mifichero2.c
#include "MiFichero.h" // Esto importa la variable

foo2() {
 MiVariable = 2;
}


Supongo que las guardias te refieres a "#ifndef #define" o "#pragma once"; Eso no soluciona el problema en efecto.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.