C语言中怎么将变量名转换为字符串 20
比如我要做一个宏定义#definename_to_str(name)这个宏定义最终返回的是我要的字符串...
比如我要做一个宏定义
#define name_to_str(name)
这个宏定义最终返回的是我要的字符串 展开
#define name_to_str(name)
这个宏定义最终返回的是我要的字符串 展开
展开全部
用这个样子的定义可以解决你的问题:
#define name_to_str(name_31415926) (#name_31415926)
示例:
#include<stdio.h>
#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 <stdio.h>
#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<stdio.h>
#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<stdio.h>
#include<string.h>
#define name_to_str(name) printf("%s\n",#name)
int main(){
int nameTest;
name_to_str(nameTest);
return 0;
}
这个就可以哈,欢迎交流。
追问
好像可以,我试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#define GET_NAME(var) #var
就这样。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询