Hola Estoy estudiando para mi prueba en C y me he encontrado con una pregunta que no puedo entender su respuesta.una variable estática en c
Un programador escribió un programa para contar el número de usuarios (Count.h, Count.c):
/******** FILE: Counter.h ***********/
static int counter = 0;
int getUsersNum();
/******** END OF FILE: Counter.h ****/
/******** FILE: Counter.c ***********/
#include "Counter.h"
int getUsersNum()
{
return counter;
}
/******** END OF FILE: Counter.c ****/
Y un probador para probarlo:
/******** FILE: CounterMain.c ***********/
#include "Counter.h"
#include <stdio.h>
int main()
{
int i;
for (i=0;i<5;++i)
{
++counter;
printf ("Users num: %d\n", getUsersNum());
}
return 0;
}
/******** END OF FILE: CounterMain.c ****/
Sorprendentemente la salida fue:
Users num: 0
Users num: 0
Users num: 0
Users num: 0
Users num: 0
No puedo ver por qué con este uso de la variable estática el contador no avanza ... ¿por qué obtuvieron tales ¿entrada?
gracias a todos!
+1 por publicar una explicación simple y solución en lugar de pasar por muchos detalles precisos pero sangrientos. –