I was so surprised by the first question that I actually tried it on my computer...
Am I the only one who tried compiling :
#include<stdio.h> #include<stdlib.h> int main(int argc, char *argv[]) { int i; int i=10; printf("i=%d\n", i); return 0; }
and got the redeclaration error I expected?