如何定义一个宏实现获取函数名字符串,如下://某一函数voidfun0(){....}//宏定义#defineGET_NAME(fun).......//这个怎么写//获取name=="fun0"char*name=GET_NAME(fun0)
2 回答

拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
参考这里Concatenation#include //宏定义#defineGET_NAME(x)#xvoidfun0(){;}intmain(){//获取name=="fun0"printf("%s",GET_NAME(fun0));//输出fun0return0;}

米脂
TA贡献1836条经验 获得超3个赞
#include #include //在宏定义中,使用#将参数转为字符串,使用##来连接两个参数作为一个整体标识符。#defineSTRING(x)#x#defineCOMBINE(x,y)x##yintmain(intargc,char**argv){intx1=1;intx2=2;//STRING(x1)将变成"x1"//COMBINE(x,1)将变成x1printf(STRING(x1)"=%d\n",COMBINE(x,1));printf(STRING(x2)"=%d\n",COMBINE(x,2));return0;}
添加回答
举报
0/150
提交
取消