C/Visual C - ¿ Cómo declarar constantes globales ?

 
Vista:

¿ Cómo declarar constantes globales ?

Publicado por Alejandro Vilches (4 intervenciones) el 16/11/2001 23:08:39
¿Es posible declarar constantes globales dentro de un header file para que programas que incluyan el header file puedan utilizar estas constantes? Si no ¿qué alternativas tengo?

Gracias,
avl
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:¿ Cómo declarar constantes globales ?

Publicado por orestes (1 intervención) el 16/11/2001 23:13:39
Deberias poder. Si no te funciona con el CONST, prueba una macro (define) que yo recuerde he utilizado y funcionan.
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:¿ Cómo declarar constantes globales ?

Publicado por Googol (255 intervenciones) el 17/11/2001 07:31:18
Sí se puede. El problema es que si en el .h declaras una variable:
int miVar;

Y luego el fichero lo incluyes en varios .cpp, vas a tener varias variables con el mismo nombre declaradas en varios ficheros distintos, pues al final un #include lo que hace es copiar todo el h al fichero CPP que lo incluye, por lo que declararías la variable varias veces, reservando espacio para ella varias veces.
Para evitar eso, lo que se hace es utilizar la palabra "extern". En el .h pones:
extern int miVar;

Cuando un CPP incluye el .h, no declara una variable, sino que se indica que existe por ahí, en algún sitio, una variable de tipo entera externa al fichero, y que ya se conocerá dónde está cuando el programa se linke.
Después, en el .cpp asociado al .h, se declara la variable sin el extern.
Resumiendo:

------ FICHERO.H ------
extern int miVariable;

------ FICHERO.CPP ------
#include "fichero.h" // Posiblemente
int miVariable;

------ OTROS FICHEROS CPP QUE USEN miVariable ------
#include "Fichero.h"

Espero que te sirva
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