I know this is not an answer, but still, why use a complex test example?
Ok, simplify everything:
#include<stdio.h> int main(void) { static int i; printf("i = %d", i); return 0; }
Conclusion:
i = 0
But what if ...?
#include<stdio.h> int main(void) { static int i=i; printf("i = %d", i); return 0; }
Conclusion:
prog.c: In function 'main': prog.c:4: error: initializer element is not constant
source share