宏定义,将变量拼成字符串,只有一行代码,大家看看哪儿错了
#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