调试时巧用宏实现输出变量的名字和值

C++随机生成中文姓名 c++ 中文名字 阅读详情

#define GETVARNAME(var,namebuf,value )   strcpy( (namebuf),#var);value = var

当然你的value,var的类型要是一样的。

//////////////////////////////////////////////////////////////////////

#include <iostream>
#include <stdlib.h>

using namespace std;

#define PRINTVARNAME( var , name ,value )  {strcpy(name ,#var);value = var;}

int main(int argc, char *argv[])
{
  int A = 10,B = 0;
  char name[64];
  PRINTVARNAME( A ,name,B);
 
  cout<<name<<" = "<< B <<endl;

  system("PAUSE"); 
  return 0;
}

////////
//结果
A = 10
请按任意键继续 . . .

在调试时自动输出变量名 在Python中,最好的debug方式是什么?毫无疑问,是print,但是print有时候显得有点笨拙,比如考虑下面的代码:def f(value):    a = value    print af(3)我们通过print输出a的值,方便debug,但是如果你的代码里有十几个变量需要这样的方式来查看值,那你一定会搞不清谁对应谁,所以,我们还需要什么呢?毫无疑问,变量的名字!最简单 阅读详情

相关推荐

不只是抓取:用五指灵巧手(ROH-A001/RH56)玩转ROS2下的力控与混合控制

本文深入探讨了在ROS2环境下使用五指灵巧手(ROH-A001/RH56)实现力控与混合控制的实战技巧。从硬件通信协议解析到ROS2节点开发,详细介绍了力感知架构、实时数据处理和混合控制策略,帮助开发者在Ubuntu系统中高效实现精密操作。通过鸡蛋抓取等实例,展示了力控技术在机器人灵巧操作中的关键作用。

weixin_28221501的博客 287

入门的第一个C++程序。从键盘输入学生姓名,然后输出指定格式的内容。

pta的作业记录

MoreLife_的博客 4373

手把手教你用Qt和QScada框架,从零搭建一个简易的工业组态监控界面

本文详细介绍了如何使用Qt和QScada框架从零搭建工业组态监控界面,涵盖环境配置、界面设计、动态数据绑定及高级功能实现。通过实战案例演示,帮助开发者快速掌握SCADA系统开发技巧,提升工业自动化项目的开发效率。

weixin_32932149的博客 340

c语言宏使用

C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏:#define WARN_IF(EXP) /  do{ if (EX

凡人凡居 787

在Simulink中构建永磁同步电机的网络化控制模型,并分析通信网络对系统性能的影响

核心优势通过仿真验证了网络延迟和丢包对PMSM控制性能的影响。提供了改进PI参数或引入自适应控制的解决方案。扩展方向抗干扰控制:结合卡尔曼滤波或滑模控制抑制网络噪声。时间敏感网络(TSN)建模:参考知识库[2]的中断触发方式,实现确定性通信。网络安全仿真:模拟恶意攻击(如数据篡改)对控制系统的威胁。

xiaoheshang_123的博客 168

UG\NX二次开发 分割曲线

分割曲线没有ufun函数?那就换一种思路实现。

王牌飞行员_里海的博客 1145

【C++】C++入门 命名空间 及输入与输出

C++入门 命名空间 及输入与输出

一点一点变好 1330

芯片工程师-必须掌握的linux操作-第一讲

一个从材料专业,转行芯片验证初级工程师,自己也是从0基础开始学习入门,更知道0基础的人应该怎么去学习。 现在工作三个多月了,特地花时间给大家写这篇文章。希望能关注、支持下。 为什么芯片验证工程师必须要学习linux命令? 答: ① 芯片工程师主要的职责,就是与IC设计工程师和系统工程师密切合作,开发验证平台,能够根据项目要求产生测试计划,产生代码及功能覆盖率,撰写验证报告。 ②简单点说,主要工作内容,是编写代码去验证设计的对不对。 那么问题来了,编写代码,在什么环境呢,我现在告诉你,都是在linux系统中进

小白蒋-材料转行芯片验证 4841

C++输入输出

#include <iostream> using namespace std; int main() { char name[20]; //姓名 int age; //年龄 char sex[2]; //性别 cout << "输入姓名:"; cin >> name; //scanf("%s",&name); cout << "输入年龄:"; cin >> age; //sc...

qq_62957500的博客 510

YooAsset 学习

YooAssets使用教程

weixin_44884538的博客 1659

Allan方差这个工具,怎么把它用的更顺手?(附Allan方差、动态Allan方差代码)

本文详细说明了Allan方差和动态Allan方差的计算过程,并通过递归运算和时间序列选择两种算法提高动态Allan方差的计算效率。文末提供了快速动态Allan方差计算代码。

victoryqian528的博客 374

SystemVerilog宏进阶技巧:`define实现跨模块字符串拼接与调试输出优化

本文深入探讨SystemVerilog宏的进阶应用,重点解析如何使用`define配合`"和``操作符实现跨模块字符串拼接与动态调试信息生成。通过构建可配置的调试输出系统和自动化代码生成宏,显著提升大型SoC验证环境的代码可读性、调试效率及维护性,适用于中高级硬件设计与验证工程师。

q9r0s的博客 285

手把手教你学simulink(42.1)--储能系统场景示例:基于Simulink的电池+超级电容器混合储能系统

混合储能系统(HESS)结合了电池和超级电容器的优点,能够在满足高功率需求的同时提供较长的持续放电时间。这种组合特别适合用于电动汽车、可再生能源发电系统、电网频率调节等应用场景。本项目将详细介绍如何在MATLAB/Simulink中搭建一个完整的基于电池和超级电容器的混合储能系统,并提供具体的代码实现和设计步骤。如果你需要实现更复杂的控制逻辑,可以使用MATLAB Function模块。以下是一个简单的例子,展示了如何在该模块中实现一个条件逻辑,以分配电池和超级电容器的充放电任务。Matlab。

MHD0815的博客 543

c语言debug显示各变量的值,xcode调试查看变量的值

对于IPhone开发/XCode的初学者,如何在调试时查看变量的值是很头痛的事情。因为Xcode的expression 经常无法正确显示变量的值。但是强大的GDB可以很方便的帮我们查看变量的值。当执行到某断点时,在GDB窗口中使用po就可以查看变量.(po = print object)1)查看String 或其它变量。po 变量名2)查看某个Property。比如要查看item变量的name属性...

weixin_31008853的博客 1168

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

宏和函数的区别

宏和函数的区别

weixin_71853810的博客 1502

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Python进阶(一)名字空间 | 超详细名字空间解析 内置 全局 局部 调试查看

在Python中,名字空间(Namespace)是一个用于存储变量名称和它们对应的对象值的容器。名字空间可以看作是一个映射,将变量名映射到相应的对象值。比如申明一个变量a=1,那么在名字空间字典中就会增加一个映射‘a’ : ‘1’包含Python解释器内置的函数和对象,例如print()和len()。这个名字空间在解释器启动时就被创建,是全局范围的,所以大家可以直观感受到print()非常方便,不需要任何的导入import。包含在我们的程序文件级别定义的变量和函数。

专注于人工智能的算法与应用 2159

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Zed调试宏 C语言错误日志 异常错误调试信息

本文介绍了C语言中的错误处理机制,重点讲解了`errno`全局变量的使用和通过宏简化错误处理和调试。`errno`记录系统调用或库函数错误的类型,程序可通过`perror()`或`strerror()`输出错误信息。为提高代码的健壮性和可维护性,文章提出了使用一系列调试宏,如`debug`、`log_err`、`log_warn`、`log_info`等,帮助开发者记录不同级别的日志。通过`check`宏简化条件检查,`sentinel`和`check_mem`宏处理内存分配失败或严重错误时的跳转。使用这些

weixin_52342399的博客 1034

WPS的JS宏操作方法

【代码】WPS的JS宏操作方法。

陈十七的博客 2万+

宏的特点和使用和宏和函数的对比

宏通常被应用于执行简单的运算。比如在两个数中找出较大的一个

li1829146612的博客 1095

Delphi在调试的时候查看变量的值

Delphi调试概述 除非你的程序只有几行,否则几乎不可能一次写成,因此调试就非常必要。然而许多初学者不知道如何进行调试,写完程序就运行,发现结果不对再看代码,这样觉得非常吃力。这里,简单介绍一下Delphi所提供的调试功能。 1. 语法检查(Syntax Check) Delphi提供了语法检查的功能,这个功能和正常编译很相似,同样也会给出各类错误和警告信息,但是不会生

slj_win的专栏 6298

pycharm如何在程序运行后查看变量的值,变量的类型(不通过print和debug的方式)

文章目录:1 问题描述2 ycharm如何在程序运行后查看变量的值,变量的类型 1 问题描述 有时候程序中有很多变量,我们在调试程序的时候需要知道这些变量的的值和变量的类型,如果通过print的方式,变量少还好,如果变量很多,就变得即麻烦,查看起来也不方便! 2 ycharm如何在程序运行后查看变量的值,变量的类型 1、首先Shift+F10运行一下你要查看变量的py文件,运行后1的位置变成该py文件的名字 2、然后点击Edit Configurations查看编辑配置窗口(如果你找不到可以使用Ctrl+

求真、务实 5436

Keil5中使用调试宏打印函数进入退出

本文介绍如何在Keil5中利用调试宏自动追踪函数的进入与退出,通过__FUNCTION__和do-while宏实现无侵入式日志输出,结合半主机或UART重定向技术,实现高效调试,并支持发布时一键关闭,适用于嵌入式开发中的流程分析与性能定位。

emacs5lisp的博客 903

C语言 带参数的宏与“#”运算符(方便调试输出)

1、预定义的宏 在C语言中预定义了一些宏,这些宏主要提供当前编译的信息。 这些宏的名字都是以两个下划线字符开始和结束的。 例如:“__FUNCTION__”用于表示当前所在函数名,它实际上是一个代码块作用域变量,而不是一个宏,它提供了外层函数的名称,用于程序调试和异常信息报告。 2、带参数的宏 带参数的宏定义的格式如下: #define 标识符(X1,X2,.....,Xn)替换列表 ...

qq_613547522的博客 496

魔兽世界GSE高级宏编译器完整指南:5个实用技巧让一键输出宏效率翻倍

如果你正在玩魔兽世界,多半经历过这样的时刻:爆发期来了,你需要在几秒内依次按下十几个技能键,眼睛盯着冷却计时,手指在键盘上飞舞,稍微断一个技能循环,DPS排名就往下掉。而官方宏系统呢?一行命令失败就卡住不动,条件判断简单得可怜,想写个像样的技能循环简直是奢望。 这篇文章要介绍的 **GSE高级宏编译器(GSE Advanced Macro Compiler)**,正是为解决这个痛点而生的魔兽世界

gitblog_00625的博客 81

Unity学习(C#)——调试,中断模式下的调试,查看和改变变量的值

在vs中我们使用 Console.Write方法输出值,来查看变量是否符合预期。 在Unity中,使用 Debug.Log(“”); Debug.LogError(“”); Debug.LogWorn(“”); 中断模式下的调试和添加断点 1.在要插入断点的行,右键——断点——插入断点 要取消的话点一下红点就取消了 2.菜单——调试——切换断点 3.按F9即可添加和取消 查看变量和改变的值 1.把鼠标放在变量上不点会显示 2.自动窗口显示全部的变量 3.监视窗口可以自己输入想要知道的变量 4.即时窗口 输入

weixin_45045387的博客 2806

fblualib dbg模块详解:如何用1个环境变量精准控制Lua调试输出级别

fblualib 是 Facebook 开源的 Lua/Torch 工具库,其中的 **fb.util.dbg 模块**让你只用一个 `DBG` 环境变量,就能按模块、按级别精准控制 Lua 调试输出的开关与详细程度——不用改代码、不用重新编译,一行命令即可切换调试粒度。 ## 为什么需要 dbg:print 调试的痛点 写 Lua 程序时,`print` 是最常用的调试手段,但它有两个麻烦:

gitblog_00068的博客 873
上一篇: 【转载】如何把一个lib库文件加入到VC.NET项目中去
下一篇: 模拟实现VC中的handle的c++方法,欢迎指正~~~
kinker
博客等级 码龄23年 7粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值