c - 使用 C 从宏函数的参数中获取 OPERATOR

标签 c function macros

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/

相关文章:

java - 传递未知类扩展父类,然后调用父类的函数(Java)

macros - 如何在一个宏调用中分配多个常量

c - 按位 float 到整数

c++ - 如何让 Clang Complete 显示函数参数?

javascript - 如何为函数生成唯一标识符,ID : rating system

objective-c - ObjC 宏 ifdef 和定义

c++ - 在 Eclipse CDT 中的给定位置查看源代码中定义的所有宏

c - 使用C查找文件权限

c - 传递 `memset' 的 arg 2 从指针生成整数而不进行强制转换

c++ - 如何将此 C 行转换为 C++?使用 cout 命令