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

2025-04-29 10:03:58
推荐回答(4个)
回答1:

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

#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

回答2:

#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;
}
/*
关键是注意 # 这个符号。
*/

回答3:

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;
}

回答4:

#include
#include
#define name_to_str(name) printf("%s\n",#name)
int main(){
    int nameTest;
name_to_str(nameTest);
return 0;
}

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