c语言如何把某个函数名转换为字符串
2个回答
展开全部
#include<stdio.h>
typedef int (*Func)();
int func_1(int a);
int func_2(int a);
int func_3(int a);
int func_1(int a){
printf("Func:%s a=%d\n" , __func__,a);
return 0;
}
int func_2(int a){
printf("Func:%s a=%d\n" ,__func__,a);
return 0;
}
int func_3(int a){
printf("Func:%s a=%d\n" ,__func__,a);
return 0;
}
int main(){
int i=0;
Func f[3];
f[0] = func_1;
f[1] = func_2;
f[2] = func_3;
for(i=0;i<3;i++){
f[i](i);
}
return 0;
}
不知道是否能满足你的需求。要注意的是,__func__这个变量是C99的标准,最好在Linux下用GCC进行编译。我是用GCC进行编译,可以顺利读取函数名。
typedef int (*Func)();
int func_1(int a);
int func_2(int a);
int func_3(int a);
int func_1(int a){
printf("Func:%s a=%d\n" , __func__,a);
return 0;
}
int func_2(int a){
printf("Func:%s a=%d\n" ,__func__,a);
return 0;
}
int func_3(int a){
printf("Func:%s a=%d\n" ,__func__,a);
return 0;
}
int main(){
int i=0;
Func f[3];
f[0] = func_1;
f[1] = func_2;
f[2] = func_3;
for(i=0;i<3;i++){
f[i](i);
}
return 0;
}
不知道是否能满足你的需求。要注意的是,__func__这个变量是C99的标准,最好在Linux下用GCC进行编译。我是用GCC进行编译,可以顺利读取函数名。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询