我想在宏中创建函数名称,具体取决于另一个宏定义的类型。例如,如果我已定义以下宏:
#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)
但我需要传递宏作为参数
如何解决这个问题?提前谢谢。