使用 C 从宏函数的参数中获取运算符



https://gcc.gnu.org/onlinedocs/cpp/Concatenation.html

如何使用 C 从宏函数的参数中获取运算符?

例:

#include <stdio.h>
#define dooo(oooo) (age) oooo=5;
int age=38;
int main(int argc,char** argv)
{
    dooo(+);
    dooo(*);
    printf("===>%dn",age);
    return 0;
}

>像+=这样的运算符是单个标记。因此,要在宏中从部分令牌生成它们,您需要使用令牌连接运算符##

#define dooo(oooo) (age) oooo##= 5;

这会将oooo扩展到(+*(的内容与=合并到一个令牌中。

最新更新