在没有进入血腥细节的情况下,我想使用一个#define
扩展为a 的宏,#include
但是'#'符号会混淆预处理器(因为它认为我想引用一个参数.)
例如,我想做这样的事情:
#define MACRO(name) #include "name##foo"
Run Code Online (Sandbox Code Playgroud)
并使用它:
MACRO(Test)
Run Code Online (Sandbox Code Playgroud)
这将扩展到:
#include "Testfoo"
Run Code Online (Sandbox Code Playgroud)
简单的#符号导致预处理器进入barf.MinGW给我以下错误:
'#' is not followed by a macro parameter
我想我需要逃避#符号,但如果这是可能的话,我不会.
是的,宏确实很邪恶......