Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The pre-processor is independent and a macro expanded before the C compiler sees it.


The preprocessor is a part of the standardized translation process, and if the standard says that certain things are not allowed in a well-formed C program, it does not matter at which stage the compiler is.


I'd be glad if you can pinpoint the location in the C standard where this constraint is given.


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).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: