使用预定义的字符串和参数从宏构建的函数名称

时间:2014-08-03 18:58:54

标签: c++ macros

我目前在C ++中定义宏时遇到了问题。

我想这样:

#define MY_MACRO (Name, Address) __int32 Get_Name() { return Address; }

现在,当我这样称呼时:

MY_MACRO(Test, 0x10);

吐出来

__int32 Get_Name() { return 0x10; }
            ^^^^

而不是

__int32 Get_Test() { return 0x10; }
            ^^^^

我该如何解决这个问题?我真的需要名称中的Get_,然后是参数传递的名称。

2 个答案:

答案 0 :(得分:6)

使用macro concatenation operator

#define MY_MACRO (Name, Address) __int32 Get_##Name() { return Address; }

答案 1 :(得分:3)

你必须以这种方式连接字符串

#define MY_MACRO(Name, Address) __int32 Get_##Name() { return Address; }