Re: variables globales.
- From: Germán Poó Caamaño <gpoo ubiobio cl>
- To: "Advocacy, chit-chat and event planning in Chile" <gnome-cl-list gnome org>
- Subject: Re: variables globales.
- Date: Thu, 23 Jun 2005 13:34:54 -0400
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.
--
Germán Poó Caamaño
http://www.ubiobio.cl/~gpoo/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]