Я знаю, что это не ответ, но все же зачем использовать сложный пример для теста?
Хорошо, давайте все упростим:
#include<stdio.h>
int main(void)
{
static int i;
printf("i = %d", i);
return 0;
}
Выход:
i = 0
Но что, если ...?
#include<stdio.h>
int main(void)
{
static int i=i;
printf("i = %d", i);
return 0;
}
Выход:
prog.c: In function ‘main’:
prog.c:4: error: initializer element is not constant