Programación General => C/C++ => Mensaje iniciado por: MaxFire en Miércoles 29 de Marzo de 2006, 18:18
Título: Declaración De Variables Gloabales A Varios Módulo
Publicado por: MaxFire en Miércoles 29 de Marzo de 2006, 18:18
:hola: Hola a todos!
estoy desarrollando un programa en C++. Ha llegado un momento en que tengo tantas funciones y que hacen cosas tan distintas que he decidido dividir el programa en varios módulos, agrupando las procedimientos según su funcionalidad. El problema que tengo es que uso muchas variables que necesitan ser usadas en distintos módulos y hay funciones en que son tantas, que resulta una burrada pasarlas como parámetros, por lo que querría tener algunas constantes y variables globales a todos los módulos. He estado ojeando manuales, y he encontrado el calificador extern, que si no me equivoco, sería para declarar las variables globales a varios módulos. Voy bien encaminado? Por otro lado, no me aclaro con que diferencia que hay entre declarar una constante de la siguiente manera, en el .h : const int ALTURA_POZO=5; y de la manera #define ALTURA_POZO 5. Es lo mismo? De las dos maneras, se ven en todos los módulos donde yo incluya el .h donde están declaradas?
Muchas gracias por su ayuda :)
Título: Re: Declaración De Variables Gloabales A Varios Módulo
Publicado por: pabloreda en Miércoles 29 de Marzo de 2006, 18:34
A ver si te sirve...
en graf.h
Código: Text
extern int gr_ancho,gr_alto;// aqui declara que existen estas variables
en grah.c
Código: Text
int gr_ancho,gr_alto; // aqui realmente guarda el espacio para estas variables
Ahora cuando se incluya graf.h estaran disponibles las variables...
Código: Text
#define VALOR 5
OJO, VALOR no es una variables, sino que reemplaza en el CODIGO la palabra VALOR con 5
suerte !
Título: Re: Declaración De Variables Gloabales A Varios Módulo
Publicado por: MaxFire en Jueves 30 de Marzo de 2006, 11:47
Gracias! :)
Lo que no me queda muy claro es, si quiero usar un valor constante, si es mejor usar un const o un #define. Alguna sugerencia?
Saludos
Título: Re: Declaración De Variables Gloabales A Varios Módulo
Publicado por: Geo en Viernes 31 de Marzo de 2006, 04:42
Con un define el preprocesador simplemente reemplaza las ocurrencias de los defines por el valor indicado, útil para aclarar cosas.
Un const es un "refuerzo" que indica que un cierto dato no puede ser modificado (o un puntero no puede apuntar a otra cosa), útil para asegurarte de que en el código no modifiques lo que no debe ser modificado.
Usa const como calificador de variables que no deban ser modificadas por funciones, y los defines para valores "globales", aunque también depende de tus preferencias y cómo te acomodes :).
También (tengo que confirmarlo porque ahorita mismo me surgió la duda), un const es más adecuado para que el compilador realice la verificación de tipos de datos.
Saludos, José Jorge (Geo).
Título: Re: Declaración De Variables Gloabales A Varios Módulo
Publicado por: MaxFire en Lunes 3 de Abril de 2006, 13:43