Привет Я готовлюсь к тесту на 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 ****/
Удивительно, но результат был:
Users num: 0
Users num: 0
Users num: 0
Users num: 0
Users num: 0
Я не понимаю, почему при таком использовании статической переменной счетчик не увеличивается .. почему они получили такой ввод?
всем спасибо!