C语言中怎么将变量名转换为字符串 20

比如我要做一个宏定义#definename_to_str(name)这个宏定义最终返回的是我要的字符串... 比如我要做一个宏定义
#define name_to_str(name)
这个宏定义最终返回的是我要的字符串
展开
 我来答
he_123456
2013-10-28 · TA获得超过2892个赞
知道大有可为答主
回答量:3162
采纳率:58%
帮助的人:1333万
展开全部

用这个样子的定义可以解决你的问题:

#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

JianBoth
2013-10-28 · TA获得超过272个赞
知道小有建树答主
回答量:372
采纳率:0%
帮助的人:166万
展开全部
#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;
}
/*
关键是注意 # 这个符号。
*/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tattackor
2015-10-29 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:886万
展开全部

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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
军天下wolfer
2013-10-28 · TA获得超过2081个赞
知道小有建树答主
回答量:734
采纳率:100%
帮助的人:939万
展开全部
#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;
}

这个就可以哈,欢迎交流。

追问
好像可以,我试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
御坂妹妹15842
2013-10-28 · TA获得超过326个赞
知道小有建树答主
回答量:197
采纳率:0%
帮助的人:225万
展开全部
#define GET_NAME(var) #var

就这样。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式