xxxxxxxxxx
int puts(const char *);
// Users would expect sayHello() to work no matter where it is used...
#define sayHello() puts("Hello World!")
int main(void) {
int puts = 0;
// However, this will FAIL TO COMPILE.
// This is because puts() has been shadowed by a local variable.
sayHello();
return 0;
}