Привет Я изучаю для своего теста в C, и я столкнулся с вопросом, который я не могу понять.статическая переменная в c
Программист написал программу для подсчета количества пользователей (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 ****/
И тестера проверить:
/******** 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 ****/
Suprisingly выход был:
Users num: 0
Users num: 0
Users num: 0
Users num: 0
Users num: 0
Не могу понять, почему при использовании статической переменной счетчик не продвигается .. почему они получили такие вход?
спасибо, что вы все!
+1 для публикации простого объяснения и решения вместо того, чтобы проходить через множество точных, но подробных деталей. –