我目前在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_
,然后是参数传递的名称。
答案 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; }