The arguments to a macro should not include preprocessor directives, such as #define
, #ifdef
, and #include
. Doing so is undefined behavior, according to section subclause 6.10.3, paragraph 11, of the C Standard [ISO/IEC 9899:2011]:
...
[GCC Bugs] | "Non-bugs" |
[ISO/IEC 9899:2011] | Section Subclause 6.10.3, "Macro Replacement" |
...