Re: variables globales.



El jue, 23-06-2005 a las 13:34 -0400, Germán Poó Caamaño escribió:
> Le jeudi 23 juin 2005 à 13:21 -0400, Claudio Saavedra a écrit :
> > On Thu, 2005-06-23 at 13:12 -0400, Germán Poó Caamaño wrote:
> > > Le jeudi 23 juin 2005 à 13:07 -0400, Alejandro Valdes J. a écrit :
> > > > Estimados.
> > > > 
> > > > ¿como puedo hacer para dejar de utilizar una variable global?, si tengo
> > > > la siguiente situacion:
> > > > 
> > > > gdouble n_var;
> > > > 
> > > > funcionX(){
> > > > 
> > > > 	n_var = gtk_spin_button_get_value (spin);
> > > > 	
> > > > 	/* evalua cada elemento del modelo */
> > > > 	gtk_tree_model_foreach (model,funcionY,una_estructura);
> > > > }
> > > > 
> > > > funcionY(model,path,iter,una_estructura){
> > > > 	
> > > > 	/* se utiliza la  variable n_var para filtar algunos valores */
> > > > 	....
> > > > 	
> > > > }
> > > > 
> > > > lo podria solucionar obteniendo el valor del spin cada ves en la
> > > > funcionY(), pero no es optimo.
> > > 
> > > Definela como static.
> > > 
> > > static gdouble _var;
> > > 
> > > De esta forma, esa variable sólo existirá dentro del módulo
> > > (archivo.c/.o).  Es lo que se emplea cuando tienes variables que
> > > no quieres que sean gloables, pero quieres que dos o más
> > > funciones la compartan.
> > 
> > IIRC, así no puedes asegurar que dos instancias concurrentes del objeto
> > no compartan el valor, que es el mayor problema de usar una variable
> > global acá. Supongo que Alejandro necesita una instancia de esa variable
> > per instancia del módulo.
> 
> Una variable static no es global.  Si las funciones que Alejandro
> la utilizan instancias de un objeto, entonces, mejor es 
> definirlas como métodos de un objeto y n_var como un atributo.
> 
> Aunque en ninguna parte se indica que habrán varios objetos accediendo
> a las funciones, a menos que me haya perdido de algo.
> 

mmmmm.... voy a probar la opción de crear una estructura, aunque al
deifinir la variable como static me ahorra tiempo (solo basta colocar la
definición.. jejeje),pero pensando en que mas adelante podría necesitar
pasar otros valores.

gracias por la ayuda.

-- 
Alejandro Valdés Jiménez.
Fono: (56) (71) 200413
RSS - DITyM.
Universidad de Talca.
Talca - Chile.




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]