https://gcc.gnu.org/onlinedocs/cpp/Concatenation.html
如何使用 C 从宏函数的参数中获取 OPERATOR?
示例:
#include <stdio.h>
#define dooo(oooo) (age) oooo=5;
int age=38;
int main(int argc,char** argv)
{
dooo(+);
dooo(*);
printf("===>%d\n",age);
return 0;
}
最佳答案
+=
等运算符是单个标记。因此,要从部分标记在宏中生成它们,您需要使用标记连接运算符##
:
#define dooo(oooo) (age) oooo##= 5;
这会将 oooo
扩展为(+
或 *
)与 =
组合成单个标记。
关于c - 使用 C 从宏函数的参数中获取 OPERATOR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48466818/