C/Visual C - Variables globales

 
Vista:

Variables globales

Publicado por updt (1 intervención) el 03/06/2007 10:38:11
Hola,

necesito declarar variables globales en un archivo de cabecera y compilar varios ejecutables mediante un proyecto, pero al crear el .exe, el linkador me devuelve un error:

... defined in module .. is duplicated in module ...

La declaración de variables en el .h es del tipo:

#ifndef VALOR
#define VALOR

/* Variables globales */

int num1, num2, num3;

#endif

los .c del proyecto incluyen a este .h

El compilador que tengo que utilizar es turboc++ 1

Además hay otro error, el main tiene esta forma:

int main(int argc, char *argv[]){

......
........

exit(0);
}

y el compilador me devuelve un warrning :

Function should return a value in function main

que sólo se soluciona añadiendo un return, pero no quiero poner un return, sino un exit para la finalización del programa

¿podeis ayudarme ?

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:Variables globales

Publicado por Nelek (816 intervenciones) el 04/06/2007 07:46:01
El mensaje que pones es por duplicacion de declaraciones, has comprobado que todas las directrices de ifndef esten bien ubicadas y que no incluyas redundantemente?
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

RE:Variables globales

Publicado por fernando.gomez (1603 intervenciones) el 04/06/2007 16:58:26
Es que tienes que declarar la variable en el header pero sin instanciarla. La instancia tiene que ir en el archivo de implementación (.c, .cpp, etc). Emplea la palabra "extern".

// archivo.h

extern int num1;
extern int num2;

// archivo.cpp

int num1;
int num2;

y listo.

Saludos.
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