• Sábado 9 de Noviembre de 2024, 03:29

Autor Tema:  Declaración De Variables Gloabales A Varios Módulo  (Leído 1430 veces)

MaxFire

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Declaración De Variables Gloabales A Varios Módulo
« en: Miércoles 29 de Marzo de 2006, 18:18 »
0
: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  :)

pabloreda

  • Miembro MUY activo
  • ***
  • Mensajes: 125
    • Ver Perfil
    • http://www.reda4.org
Re: Declaración De Variables Gloabales A Varios Módulo
« Respuesta #1 en: Miércoles 29 de Marzo de 2006, 18:34 »
0
A ver si te sirve...

en graf.h
Código: Text
  1.  
  2. extern int gr_ancho,gr_alto;// aqui declara que existen estas variables
  3.  
  4.  


en grah.c

Código: Text
  1.  
  2. int gr_ancho,gr_alto; // aqui realmente guarda el espacio para estas variables
  3.  
  4.  

Ahora cuando se incluya graf.h estaran disponibles las variables...

Código: Text
  1.  
  2. #define VALOR 5
  3.  
  4.  

OJO, VALOR no es una variables, sino que reemplaza en el CODIGO la palabra VALOR con 5

suerte !

MaxFire

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Declaración De Variables Gloabales A Varios Módulo
« Respuesta #2 en: Jueves 30 de Marzo de 2006, 11:47 »
0
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

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Declaración De Variables Gloabales A Varios Módulo
« Respuesta #3 en: Viernes 31 de Marzo de 2006, 04:42 »
0
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).
La imaginación es el límite.
Hardware & Software | Mexchip

MaxFire

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Declaración De Variables Gloabales A Varios Módulo
« Respuesta #4 en: Lunes 3 de Abril de 2006, 13:43 »
0
Mil gracias!!! ahora me ha quedado claro. :D