#include int f1(); int f2(); int main() { printf("%d\n", f1()); // 0 printf("%d\n", f1()); // 0 printf("%d\n", f2()); // 2 printf("%d\n", f1()); // 1 printf("%d\n", f2()); // 3 printf("%d\n", f1()); // 2 return 0; } #ifdef GBLOBALVAR int count1 = 0; int count2 = 0; int f1(void) { count1++; return count2; } int f2(void) { count2++; return count1; } #else int hidden(int i) { static int a[2] = {}; a[i]++; return a[1-i]; } int f1(void) { return hidden(0); } int f2(void) { return hidden(1); } #endif