I was perusing C99 (6.9.2.4) and found that at file scope, you can "redefine" variables:I was wondering, what is the purpose of this? Why not use extern for the duplicates?Code:int i; int i; //legal int i; int i; int i; int main() { int i; int i; //illegal return 0; }