首页 > 其他分享 >利用宏进行调试

利用宏进行调试

时间:2024-03-29 13:37:08浏览次数:25  
标签:... const format char 利用 debug 调试 进行

万能的宏

在调试代码的时候,如果想一次性输出好多变量的值和它们对应的名字,又不行写太长的printf,怎么办?

namespace DEBUG {
    template <typename T>
    void _debug(const char* format, T t) {
        cerr << format << '=' << t << endl;
    }
    
    template <class First, class... Rest>
    void _debug(const char* format, First first, Rest... rest) {
        while (*format != ',') cerr << *format++;
        cerr << '=' << first << ",";
        _debug(format + 1, rest...);
    }
    
    template <typename T>
    ostream& operator<<(ostream& os, const vector<T>& V) {
        os << "[ ";
        for (const auto& vv : V) os << vv << ", ";
        os << "]";
        return os;
    }
    
#define debug(...) _debug(#__VA_ARGS__, __VA_ARGS__)
}using namespace DEBUG;

像这样,运行debug(a, b, c)就可以输出变量a,b,c的值了(自带换行),类型随意。
具体的原理还在探究中...

Written with StackEdit中文版.

标签:...,const,format,char,利用,debug,调试,进行
From: https://www.cnblogs.com/genshin-player/p/18103668

相关文章

  • notepad++ 利用正则表达式批量删除关键词所在行
    摘要平时使用notepad++查看文本文档,或者打开日志文件,总有一些不太关心的信息需要去除,基于这种情况,notepad++支持正则表达式,便有了操作空间。正则表达式查找使用正则表达式#匹配指定关键字所在的整行^.*关键字.*\r?\n示例:匹配包含"info"的行^.*info.*\r?\n具体步骤使用......
  • ChatGPT指南:如何利用AI撰写优质学术论文
    ChatGPT无限次数:点击直达htmlChatGPT指南:如何利用AI撰写优质学术论文引言随着人工智能技术的不断发展,越来越多的研究者开始探索如何利用AI工具辅助学术论文的撰写过程。其中,ChatGPT作为一种基于生成式预训练模型的自然语言处理工具,为研究人员提供了更快速、更高效的写作......
  • Sentinel 对分布式服务进行流量控制
    可以下载sentinel的jar包,用java-jar命令直接启动 默认端口就是8080,这里随便写一下演示,其他修改还是直接看Sentinel网站吧java-jar-Dserver.port=8080sentinel的jar包名.jar 对需要进行流量控制的服务进行依赖导入(这个依赖直接在父工程引入似乎无效,不知为何)<dependency>......
  • Mybatis是如何进行分页的?分页插件的原理是什么?
    Mybatis使用RowBounds对象进行分页,它是针对ResultSet结果集执行的内存分页,而非物理分页,可以在sql内直接书写带有物理分页的参数来完成物理分页功能,也可以使用分页插件来完成物理分页。分页插件的基本原理是使用Mybatis提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执......
  • 【前端面试题-20】js如何对输出内容进行HTML编码
    在JavaScript中,对输出内容进行HTML编码通常是为了防止XSS攻击(跨站脚本攻击),即将特殊字符转换成HTML实体的形式,避免它们被浏览器解析为HTML或JavaScript代码。以下是一些常见的HTML编码方法:使用内建函数encodeURIComponent()和encodeURI()虽然这两个函数主要用于编码URI......
  • 如何合理利用chatgpt写中文论文,10分钟速成(二)
    演示站点: https://www.cnsai.net/ 论文模块官方论坛: www.jingyuai.com 京娱AI一,编写提纲编写提纲能使作者树立全局观念,从整体出发,明确写作的先后顺序和重点。编写提纲是在写作之前对文章的整体架构进行组织和概括,明确写作的内容以及主要方向。编写提纲需要注意以下几......
  • Java案例:考试奖励(利用if..else if实现)
    目录1:题目2:分析3:代码展示1:题目小明快期末考试了,小明爸爸对他说,会根据他不同的考试成绩,送他不同的礼物,假如你可以控制小明的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出。2:分析1.键盘录入考试成绩2.由于奖励种类比较多.属于多......
  • 认知战壳吉桔:认知战战略如何利用仪式感收割年轻人
    认知战壳吉桔:认知战战略如何利用仪式感收割年轻人关键词:新质生产力、人类命运共同体、认知战、认知域、认知战研究中心、认知战争、认知战战术、认知战战略、认知域作战研究、认知作战、认知控制、战略思想、CognitiveWarfare、CognitiveDomain、CognitiveControl内容摘要......
  • Win32堆的调试支持
    Win32堆的调试支持  为了帮助程序员及时发现堆中的问题,堆管理器提供了以下功能来辅助调试。 1:堆尾检查(HeapTailCheck)HTC,在堆尾添加额外的标记信息,用于检测堆块是否溢出。2:释放检查(HeapFreeCheck)在释放堆块时进行检查,防止释放同一个堆块。3:参数检查,对传递给堆的各种......
  • 【腾讯云HAI】基于腾讯云HAI部署Stable Diffusion进行图像创作
    toc一、前言在深度学习领域,稳定扩散(StableDiffusion)是一种强大的生成模型,近年来备受关注。稳定扩散模型通过逐步将噪声信号转化为目标图像,实现了高质量图像生成的突破性进展。相较于传统的生成对抗网络(GAN)等模型,稳定扩散技术在生成图像时展现出更加稳定和可控的特性,为图......