In the standard C language, macros cannot generate preprocessing directives. For example, in ISO 9899: 1999:
6.10.3.4 Re-scanning and further replacement
[...]
The resulting fully macro-replaceable sequence of preprocessing tokens is not processed as a preprocessing directive, even if it looks like one, [...]
(This “even if it looks like one” remark is completely redundant, because, of course, no syntax is considered a preprocessing directive if it does not look like one! However, words have been inserted into your mind for many years. I just found a quote section by searching for a document so that the string “looks like one.”)
source share