【发布时间】:2021-11-03 06:15:31
【问题描述】:
我在使用 C 中的宏时遇到问题。有什么方法可以调用并获取宏中的参数值来调用函数?
下面的示例代码会产生错误:
#define order(i) fruits_i##_banana()
void fruits_1_banana()
{
printf("Order banana\n");
}
int main()
{
int a = 1;
order(a);
}
【问题讨论】:
-
有一个文字替换并且预处理器不会将
a转换为1,您可以使用指向函数的指针数组。 -
有答案时不要更改问题。
-
非常感谢,您能不能更清楚地告诉您如何使用指针数组在宏中起作用???
-
对不起,因为上一个问题太混乱了,所以我更新一点信息,可以更了解我的情况
-
这里有一个例子:stackoverflow.com/a/37394374/1606345 当然不需要逆向,只要使用原型和数组定义就可以了。