前几天我试图使用宏来定义一个像这样的函数(显然简化):
#define DEF_ADD(name) \
int add_name(int x, int y) { \
return x + y; \
} \
Run Code Online (Sandbox Code Playgroud)
现在,我希望代码片段DEF_ADD(hello)定义函数add_hello.但是,宏调用定义了一个名为的函数add_name.我希望这与扫描有关,但我找不到重建我正在寻找的行为的方法.任何想法如何做到这一点?
你需要
#define DEF_ADD(name) \
int add_##name(int x, int y) { \
return x + y; \
}
Run Code Online (Sandbox Code Playgroud)
请注意##.我也删掉了最后的换行符.否则,name不使用该参数,您将创建add_name为函数名称.