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.

De la misma forma, puedes definir funciones como static,
para que existan sólo dentro del módulo.  Que típicamente
se usan para funciones locales y evitar colocarles un
prefijo (como mimodulo_).

-- 
Germán Poó Caamaño
http://www.ubiobio.cl/~gpoo/

Responder a