首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

宏定义,将变量拼成字符串,惟独一行代码,大家看看哪儿错了

2013-08-10 
宏定义,将变量拼成字符串,只有一行代码,大家看看哪儿错了#define dfp(CLASSNAME, METHODNAME, VARNAME, X)

宏定义,将变量拼成字符串,只有一行代码,大家看看哪儿错了


#define dfp(CLASSNAME, METHODNAME, VARNAME, X) locationMap["CLASSNAME_METHODNAME_VARNAME_x"] = X;


比如我现在调用
dfp(classA, methodB, sprite, 10)
我想让它替换成:
locationMap["classA_methodB_sprite_x"] = 10;

结果不行,在网上查了一下,说用##分隔,也就是下面这个方法,


#define dfp(CLASSNAME, METHODNAME, VARNAME, X) locationMap["CLASSNAME##_##METHODNAME##_##VARNAME##_x"] = X;

试了一下,还是不行。
[解决办法]
#define dfp(CLASSNAME, METHODNAME, VARNAME, X) locationMap[#CLASSNAME"_"#METHODNAME"_"#VARNAME] = X

引用:

#define dfp(CLASSNAME, METHODNAME, VARNAME, X) locationMap["CLASSNAME_METHODNAME_VARNAME_x"] = X;


比如我现在调用
dfp(classA, methodB, sprite, 10)
我想让它替换成:
locationMap["classA_methodB_sprite_x"] = 10;

结果不行,在网上查了一下,说用##分隔,也就是下面这个方法,


#define dfp(CLASSNAME, METHODNAME, VARNAME, X) locationMap["CLASSNAME##_##METHODNAME##_##VARNAME##_x"] = X;

试了一下,还是不行。

热点排行