用于连接另一个宏的宏

时间:2016-06-23 17:07:16

标签: c++ concatenation c-preprocessor

请考虑以下事项:

#define asd(a, b) a ## _ ## b
#define concat(a, b) a ## b

当我这样做时:

concat(__, asd(x, y));

我希望得到

__x_y

但不,asd部分未被评估为宏。我应该做些什么?我也直接尝试了

__ ## asd(x, y)

但不,这也不起作用。有没有办法得到我需要的东西,即在asd(x, y)而不是显式concat表达式中使用"asd(x, y)"的结果?

0 个答案:

没有答案