C/Visual C - Redefinicion tipos

 
Vista:

Redefinicion tipos

Publicado por Marcoss (1 intervención) el 01/04/2008 17:54:38
Hola estoy programando en c++ y tengo un proyecto con varios módulos. Quiero declarar una variable para usarla en todos los módulos, es decir, que todos usen la misma variable. Esa variable es una tabla de 50 posiciones que contiene registros, ¿está bien esta declaracion?

typedef struct {
char lexema[20];
int compLexico;
int nveces;
}STYPE;

extern STYPE tablaSimbolos[50];

Me sale el error:

c:p2practica 2simbolos.h(5) : error C2371: 'STYPE' : redefinition; different basic types

¿qué quiere decir? yo la variable sólo la declaro en un sitio, simbolos.h, pero como la tienen que usar en varios módulos ese simbolos.h lo incluyo en los módulos que lo necesitan. Espero podais ayudarme.

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Redefinicion tipos

Publicado por Nelek (816 intervenciones) el 08/04/2008 15:35:21
El extern lo estas usando en donde la declaras? o donde la quieres usar?

Si tu declaras una variable publica en un .h, puedes usar la variable en los demas modulos donde incluyes ese header sin necesidad del extern. Si la declaras de modo global en un .cpp entonces si que necesitas el extern a la hora de usarla.

Es decir:

modulo1.h
int a;

modulo1.cpp
a = 0;
int b = 0;

modulo2.cpp
#include modulo1
a = 1;

extern int b;
b = 1;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar