Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/06/2004, 10:18
shahm
 
Fecha de Ingreso: agosto-2001
Mensajes: 53
Antigüedad: 23 años, 3 meses
Puntos: 0
Estas encontrando problemas por que lo que quieres hacer es una chapuza que va en contra del concepto de programación extructurada.
Las variables globales están prohividas, no te digo ya lo que pretendes hacer.

Pero bueno, si quieres hacer lo que quieres hacer, yo lo haria así:

Declararia las variables en el .c donde esté el main como variables normales:

int a;

Luego las declararia como extern allí donde las quiera usar:

extern int a;

Y listo.

NUNCA se me ocurriria declarar una variable en un .h pues no tiene sentido. A la que pongas 2 veces una include a ese .h el compilador te dirá que las variables ya están declaradas. Entonces que sentido tiene una include que solo puede ponerse una vez en todo el hilo de ejecución?

Las variables estáticas mantienen su valor durante toda la ejecución, son otra historia. Por ejemplo, una variable estática en una función es válñida solo dentro de la función, pero el valor de la variable permanecerá en todas las llamadas a la función pues la variable no es destruida al finalizar la función sino que permanece en memoria aunque no sea accesible. Mi recomendación: no usarlas a no ser que tengas muy muy claro que es lo que estás haciendo.

Mi última recomendación: no usar variables globales: arrastra los valores que quieras como parámetros de funciones aunque sea mas engorroso, es lo correcto.