在C中获取变量名称的编程方法?

2024-01-12

我正在开发一个工具来转储变量中的数据。 我需要转储变量名称以及值。

我的解决方案:将变量名称存储为字符串,并打印“变量名称”,后跟其值。

有没有任何编程方法可以知道变量名称?


你可以尝试这样的事情:

#define DUMP(varname) fprintf(stderr, "%s = %x", #varname, varname);

我以前用过这个标题 https://github.com/anacrolix/archive/blob/master/utility/c/eruutil/debug.h我写的,当我刚接触 C 时,它可能包含一些有用的想法。例如,这将允许您打印 C 值并在其中提供格式说明符(以及一些附加信息):

#define TRACE(fmt, var) \
        (error_at_line(0, 0, __FILE__, __LINE__, "%s : " fmt, #var, var))

如果您使用 C++,则可以使用传递值的类型并适当地输出它。如果是这种情况,我可以提供一个更有利可图的示例来说明如何“漂亮地打印”变量值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在C中获取变量名称的编程方法? 的相关文章

随机推荐

  • 在其他函数参数中调用函数好吗?

    我想这个 public static string abc return abc 最好这样调用这个函数 string call abc Console writeline call 比这个 console writeline abc 有什么
  • TensorFlow 2.5.0 与 NumPy 1.21+ 不兼容? (2021-10-05)

    对于所有偶然发现这一点的人 我最近正在做图像分类 将 CNN 拟合到一些标记数据上 我想使用 keras 的模块进行数据增强 但是 我遇到了 NotImplementedError 更具体地说 它逐字地说如下 NotImplementedE
  • 使用存储库和实体框架在领域事件中实现实体持久化?

    我正在深入研究领域事件 并且需要一些关于出于历史原因对实体进行持久更新的建议 我的示例涉及用户实体和登录 public class UserService private UserRepository repository public U
  • 重构布尔表达式的工具[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个重构布尔表达式的工具 我有这样的表达 a1 gt b1 lt gt c or d AND
  • 即使应用程序退出后,如何使用 UIAutomation 工具继续测试 iOS 应用程序?

    我有一个应用程序 应用程序中有一个按钮 如果单击该按钮 则会退出应用程序 我正在使用 UIAutomation 仪器测试该应用程序 我想测试一下这个按钮 但应用程序退出后 仪器不再抛出异常 我想做的是 在应用程序存在后 我想重新打开应用程序
  • 如何建议在 Python 中使用自定义双下划线变量?

    我想知道 是否建议 Pythonic 在 Python 脚本中定义和使用自定义双下划线变量 函数 例如 tablename 如 SQLAlchemy 中使用的或 validateitem 在应用之前验证项目的自定义函数 setitem to
  • 为什么我在 Python 中使用 BeautifulSoup 会收到“'ResultSet'没有属性'findAll'”?

    所以我正在慢慢学习Python 并尝试制作一个简单的函数 从在线游戏的高分页面中提取数据 这是我将别人的代码重写为一个函数 这可能是问题 但我收到此错误 这是代码 gt gt gt from urllib2 import urlopen g
  • 为什么这个 subprocess.check_call() 不起作用?

    我在 Ubuntu 12 上使用 Python 2 7 运行这些代码片段 import subprocess args rsync rsh ssh tmp a 127 0 0 1 tmp b subprocess check call ar
  • 在宏中用下划线替换空格?

    我可以编写一个单参数宏 它采用由空格分隔的单词 标记序列 并生成相同的序列 但每个单词 标记之间有下划线 e g MAGIC MACRO brave new world 将评估为 brave new world Notes 我不介意每个空白
  • 小图像数据集的数据增强技术?

    目前我正在训练类似于的小型徽标数据集Flickrlogos 32 http www multimedia computing de flickrlogos 与深度 CNN 为了训练更大的网络 我需要更多的数据集 因此使用增强 我现在做的最好
  • 在 Python 中使用切片更改多个 Numpy 数组元素

    说我有numpy array arr 1 np arange 10 返回 array 0 1 2 3 4 5 6 7 8 9 我该如何改变multiple使用切片将元素设置为某个值 例如 将从第一个元素开始每五个元素出现的第零个 第一个和第
  • 如何找到元素具有哪些 onChange 函数?

    我有一个加载大量 JavaScript 文件的页面 在文件中的某个位置 onchange 处理程序被添加到输入字段 A 当一个值添加到输入字段 A 时 输入字段 B 会自动填充另一个值 取决于 A 的值 数量庞大的文件和输入字段的名称 co
  • 资源泄漏:“in”永远不会关闭

    为什么 Eclipse 在下面的代码中给我警告 资源泄漏 in 永远不会关闭 public void readShapeData Scanner in new Scanner System in System out println Ent
  • 编写 python3 zip 的另一种方法是什么[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我一直在编写一个代码 该代码读取文件
  • 执行并发 SSH 命令?

    我想使用以下命令编写一个 PHP 脚本ssh2 http www php net manual en ref ssh2 php函数将一些代码同时部署到多个服务器并运行一些任务 这在 PHP 中可行 还是我必须等待每个请求完成 我可以使用不同
  • 使用 HTML Agility Pack 替换 HTML div InnerText 标记

    我正在使用 HTML Agility Pack 来操作和编辑 HTML 文档 我想更改该字段中的文本 如下所示 div b Some text here b br div 我希望将此 div 中的文本更新为 div b Some other
  • 如何安装Roslyn(用于源代码修改)?

    我不想安装编译器 据我所知它已经安装了 我使用的是 Visual Studio 2015 我不想要源代码 我只想能够做一些简单的代码更改 例如这个问题 https stackoverflow com questions 23227644 h
  • 从 Java 类型移回 MATLAB 类型

    我有一个 Java 数组 my array在我的 MATLAB 工作区中 我想将其转换回 MATLAB 数组 在下面的示例中 whos my array Name Size Class my array 20000x1 java lang
  • 如何设置可执行 Spring Boot jar 文件的 JVM 属性?

    作为后续问题如何构建 systemd 可以直接作为服务执行的 Spring Boot jarfile https stackoverflow com q 40870317 107158 如何设置可执行 Spring Boot jar 文件的
  • 在C中获取变量名称的编程方法?

    我正在开发一个工具来转储变量中的数据 我需要转储变量名称以及值 我的解决方案 将变量名称存储为字符串 并打印 变量名称 后跟其值 有没有任何编程方法可以知道变量名称 你可以尝试这样的事情 define DUMP varname fprint