Declaración multiple de variables...

Iniciado por Yekka, 14 Marzo 2009, 19:42 PM

0 Miembros y 1 Visitante están viendo este tema.

Yekka

Hola chic@s

si tengo una rutina como la siguiente:

sub Rutina()
dim cadena as string
dim variable as integer


.. cualquier accion con dichas variables...

end sub

y lo llamo cada minuto por decir algo, con un timer.

que sucede? estoy declarando una y otra vez dichas variables, que sucede con la memoria, uso mas y mas cada vez o uso el mismo espacio. eso mientras la aplicacion se ejecute, suponiendo que por ejemplo esa aplicacion dura unas 5 horas en proceso.

es una duda que me sigue desde hace ya bastante tiempo ..

bye!

Krackwar ™

WHK es mas u17r4m4573r31337 que yo



El error mas grande de el mundo es decir que el ser humano es inteligente.

Facismo , antifacismo , etc.. la misma mierda ..
Soy el-> http://tinyurl.com/fantasma-de-krackwar
Código (asm) [Seleccionar]

mov ecx,1000
Etiqueta:
invoke printf,"No Copiare en clases"
loop Etiq

Yekka

a ver si entiendo...

según entiendo, cuando declaras una variable, sre le asigna una dirección de memoría y los valores que dicha variable tome a lo largo del proceso, son almacenados en dicha dirección. Ahora bien, llamando una y otra vez a una rutina y siendo variables LOCALES ¿no se vuelven a declarar? es decir, ¿no se le asigna nueva dirección de memoría? pero esa variable pierde su valor, y cuando regrese a la rutina ya no lo tendrá ¿que pasa hay exactamente?

se que puedo mantener el valor en memoria con un statis, pero aun no me queda claro, gracias

bye!!

Krackwar ™

Se vacian las variables cada ves que se entra en la funcion o usaban ebp la verdad es que no me acuerdo cual de las dos pero en las dos se limpian antes de todo.
WHK es mas u17r4m4573r31337 que yo



El error mas grande de el mundo es decir que el ser humano es inteligente.

Facismo , antifacismo , etc.. la misma mierda ..
Soy el-> http://tinyurl.com/fantasma-de-krackwar
Código (asm) [Seleccionar]

mov ecx,1000
Etiqueta:
invoke printf,"No Copiare en clases"
loop Etiq

BlackZeroX

Cita de: Kr4ckwar en 16 Marzo 2009, 02:13 AM
Se vacian las variables cada ves que se entra en la funcion o usaban ebp la verdad es que no me acuerdo cual de las dos pero en las dos se limpian antes de todo.

si de hecho al termino del proceso se limpian sea cual sea. almenos que esten declaradas globalmente en un modulo o en el "encabezado" (hasta arrribobota donde no da la luz jo) en un formulario.

o ALMENOS que uses Static para declararlas hay no se limpian

Ejemplo:

{
dim variable
´demas procesos
}
en este caso se limpia cuando termina

{
Static variable
´demas procesos
}
en este caso perduraran los datos almacenados almenos que al ultimo se pongan un valor Nulo como 0 o "" según sea el caso

si se declaran en un modulo dichas variables serán globales almenos que se les defina lo contracion sean Publicas

public variable

o privadas

Private Variable

resulta y se aplica los mismo en un formulario clase o demás lugares,

Ojala te sirva lo expuesto.

Dulces Lunas.
The Dark Shadow is my passion.