C中如何定义宏实现 通过函数 获取到函数名

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

拉风的咖菲猫

参考这里Concatenation#include//宏定义#defineGET_NAME(x)#xvoidfun0(){;}intmain(){//获取name=="fun0"printf("%s",GET_NAME(fun0));//输出fun0return0;}

米脂

#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;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript