带参数的

时间:2016-06-09 09:45:17

标签: c macros

我搜索了论坛,但无法找到解决这个宏参数的问题的解决方案。注意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。

我确信有可能或者我错过了什么?

谢谢。

0 个答案:

没有答案