Variables estáticas
Publicado por Marco (3 intervenciones) el 18/04/2007 00:08:01
Hola, estoy desarrollando en C++ sobre QNX Neutrino, estoy utlizando g++ del grupo de compiladores de GCC 3.3.5.
El problema es el siguiente y ya no sé que hacer porque nunca me había ocurrido algo como esto.
Supongan que tengo una función void Compute(void) donde hay un segmento de código similiar al siguiente
void Compute(void) {
static bool init = false;
if(!init) {
// Código
init = true;
}
// Mas código
}
Si yo llamo a Compute muchas veces, yo esperaría que sólamente la primer vez sea verdadera la condición de !init, sin embargo esto no ocurre, cada vez que invoco a Compute el valor de init vuelve a ser false.
No he encontrado solución a este problema, cuando descubrí este problemita me fui a inspeccionar otros archivos donde también utilizo variables estáticas (esas de tipo numérico) y me encuentro con el mismo problema de que la variable no conserva el último valor que tomó.
Saludos y gracias de antemano
El problema es el siguiente y ya no sé que hacer porque nunca me había ocurrido algo como esto.
Supongan que tengo una función void Compute(void) donde hay un segmento de código similiar al siguiente
void Compute(void) {
static bool init = false;
if(!init) {
// Código
init = true;
}
// Mas código
}
Si yo llamo a Compute muchas veces, yo esperaría que sólamente la primer vez sea verdadera la condición de !init, sin embargo esto no ocurre, cada vez que invoco a Compute el valor de init vuelve a ser false.
No he encontrado solución a este problema, cuando descubrí este problemita me fui a inspeccionar otros archivos donde también utilizo variables estáticas (esas de tipo numérico) y me encuentro con el mismo problema de que la variable no conserva el último valor que tomó.
Saludos y gracias de antemano
Valora esta pregunta


0