int g; int main(void) { g = 0; }
int a; int a;is illegal
int a; void f(void) { float a; /* different from global `a' */ float b; a = 0.0; /* sets `a' declared in this block to 0.0 */ /* global `a' is untouched */ { int a; /* new `a' variable */ a = 2; /* outer `a' is still set to 0.0 */ } b = a; /* sets `b' to 0.0 */ } /* global `a' is untouched by anything done in f() */