Retroceder   Foros del Web > Temas generales de computación > Programación
Crea un nuevo usuario o inicia sesión utilizando tu cuenta de Facebook
Connect with Facebook

Respuesta
 
Herramientas Desplegado
Antiguo 07-jun-2004, 17:12   #1 (permalink)
Instru se está portando bien
 
Avatar de Instru
 
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.494
Instru está desconectado
Variables globales con C

Tengo un tremendo problema con el alcance de variables globales.

Lo que quiero es en una cabecera (header.h) declarar todas mis variables globales para despues en todos los archivos que incluya esta cabecera, puedan tener acceso a esta variables globales.

Para eso use static. Todo funcionaba bien con static, pero despues me di cuenta que ocaciona errores con los valores de las variables en distintos archivo.

entonces me dijieron que con el extern se podia hacer esto.

Segun la documentacion, declaro una variable en donde sea y despues en otro archivo SIN incluir la cabecera en donde se declaro la variable global, usar extern y el nombre de la variable(claro, y si tipo).

Pues no me funciona.

Tengo una cabecera con prototipos de funciones y declaracion de variables y al usar extern en otros archivo, me dice que la variable ha sido redefinida.

Lo que quiero lograr es que pueda usar mis variables de la cabecera en todos mis archivos y cabeceras.


Ayuda porfavor.



Saludos
  Responder Citando
Antiguo 08-jun-2004, 10:18   #2 (permalink)
shahm se está portando bien
 
Fecha de Ingreso: noviembre-2002
Mensajes: 53
shahm está desconectado
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.
  Responder Citando
Antiguo 08-jun-2004, 15:10   #3 (permalink)
Instru se está portando bien
 
Avatar de Instru
 
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.494
Instru está desconectado
Bueno, el problema es de que estas variables tienen que ser modificadas en todos los archivo, aparte eso de referencia con punteros y todo eso me fastidia, claro que antes si lo usaba, pero para este proyecto decidi hacerlo con variables globales.

Saludos
__________________
Usa las putas faqs:
http://www.forosdelweb.com/showthread.php?t=264647
  Responder Citando
Respuesta
No hay votos aún.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code está Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado
Trackbacks está Desactivado
Pingbacks está Desactivado
Refbacks está Desactivado



La zona horaria es GMT -6. Ahora son las 05:18.
Políticas de Uso de Foros del Web


Message Board Statistics

SEO by vBSEO 3.3.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100