C99 Section 7.1.2.4 (on standard headers): "The program shall not have any macros with names lexically identical to keywords currently defined prior to the inclusion."
You can redefine keywords in your code, but they must not be defined when including standard headers (for obvious reasons).