我搜索了论坛,但无法找到解决这个宏参数的问题的解决方案。注意var
不是macro
,而是变量。这是问题所在:
#define HELLO (var) VALUE_ ## var
当我打电话说HELLO(1)
时,我需要将宏设为VALUE_1
而不是VALUE_var
。
可以这样做吗?
嗨,大家好, 感谢您的回复和指示。在我发布之前的帖子之前,我查看了帖子。我猜我的问题略有不同。可能是我无法解释清楚。这就是我想要实现的目标:
#define HELLO(var) VALUE_ ## var
#define VALUE_1 // do something
#define VALUE_2 // do something
#define VALUE_3 // do something
在我想要使用的代码中:
int i = 2;
HELLO(i); // should convert to a macro VALUE_2
问题在于,当我传递一个变量" i"对于marco,它应该将它转换为数字并连接。上一篇文章使用函数名作为字符串,并与宏VARIABLE连接,这不是这里的情况。
我的问题是如何让宏使用i的值而不是" i"本身生成另一个宏为VALUE_2。
我确信有可能或者我错过了什么?
谢谢。