使用另一个标记Concatanate宏参数

时间:2015-04-26 19:05:26

标签: c++ c macros

我想在宏中创建函数名称,具体取决于另一个宏定义的类型。例如,如果我已定义以下宏:

#define TYPE int

我的函数名称应如下所示

int_allocate

我试过这个:

#define CREATE_NAME(VTYPE) VTYPE _allocate
#define FUNCTION_NAME CREATE_NAME(TYPE)
FUNCTION_NAME

并得到以下一行

int _allocate

您可以看到 int _allocate 之间有一个空格。我知道如何连接这些行,它应该是

#define CREATE_NAME(VTYPE) VTYPE ## _allocate

但在这种情况下,我没有获得 int_allocate ,而是获得 TYPE_allocate 。 当我将 int 作为参数传递时,我得到了正确的结果

#define FUNCTION_NAME CREATE_NAME(int)

但我需要传递作为参数

如何解决这个问题?提前谢谢。

0 个答案:

没有答案