用这个样子的定义可以解决你的问题:
#define name_to_str(name_31415926) (#name_31415926)
示例:
#include
#define name_to_str(name_31415926) (#name_31415926)
int main()
{
int a,b,c,abc;
char * p1;
a=3;
b=4;
c=5;
abc=a*b*c;
p1=name_to_str(abc);
printf("a= %d b= %d c= %d\n",a,b,c);
printf("%s= %d %s= %d %s= %d\n",name_to_str(a),a,name_to_str(b),a,name_to_str(c),c);
printf("%s=%d\n",p1,abc);
return 0;
}
输出结果:
a= 3 b= 4 c= 5
a= 3 b= 3 c= 5
abc=60
#include
#define fun(xxx) printf( "%s = %d\n", #xxx, xxx )
#define name_to_str(xxx) #xxx
int main()
{
int m = 5;
fun(m);
printf("%s\n",name_to_str(m));
return 0;
}
/*
关键是注意 # 这个符号。
*/
1、可以使用宏定义解决的问题:
#define name_to_str(name_31415926) (#name_31415926)
2、示例:
#include
#define name_to_str(name_31415926) (#name_31415926)
int main()
{
int a,b,c,abc;
char * p1;
a=3;
b=4;
c=5;
abc=a*b*c;
p1=name_to_str(abc);
printf("a= %d b= %d c= %d\n",a,b,c);
printf("%s= %d %s= %d %s= %d\n",name_to_str(a),a,name_to_str(b),a,name_to_str(c),c);
printf("%s=%d\n",p1,abc);
return 0;
}
#include
#include
#define name_to_str(name) printf("%s\n",#name)
int main(){
int nameTest;
name_to_str(nameTest);
return 0;
}
这个就可以哈,欢迎交流。