变量名称获取

chinacctv1 2019-03-22 02:22:34
请问可以通过一个函数获取传入参数对应名称吗? 例如 int main() { int num = 10; func(num); } 是否可以实现 int func(int a) 使其输出 num = 10
...全文
201 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
636f6c696e 2019-03-23
  • 打赏
  • 举报
回复
编译后的汇编语言是没有变量名称的
  • 打赏
  • 举报
回复
C不支持RTTI,C++支持RTTI也很有限,只能取类型名,至少标准C++是这样的,但是可以用宏模拟一下:

#include <stdio.h>

#define __NAME__(x) #x

int func(int a)
{
printf("%s = %d\n", __NAME__(a), a);
return a;
}

int main()
{
int num = 10;
printf("%s = %d\n", __NAME__(num), num);
printf("%s = %d\n", __NAME__(func)__NAME__((num)), func(num));

return 0;
}

赵4老师 2019-03-23
  • 打赏
  • 举报
回复
为什么不去试试读取对应PDB文件获取变量名呢?
chinacctv1 2019-03-22
  • 打赏
  • 举报
回复
那就只能把名称传进去了 void func(char *pParaName, int paraVAlue) { printf("%s = %d\n",pParaName, paraValue); }
LubinLew 2019-03-22
  • 打赏
  • 举报
回复
不可以,编译后这些变量名称都不存在了

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧