当前位置: 首页 > news >正文

C++调试宏与断言

1. 调试宏

  • __FUNCTION__:函数名
  • __TIME__:文件运行的时间(注意:是文件运行时间,而不是运行该行的时间)
  • __LINE__:所在行数
  • __FILE__:文件的名字
  • __DATA__:日期

注意:

这几个宏是编译器内置的,不是在哪个头文件中包含的。

2. assert

#include<assert>voidassert(intexpression);

assert 作用:

  • assert的作用是现计算表达式expression,如果其值为假(即为 0),那么它先向stderr打印一条出错信息,然后通过调用abort来终止程序运行。
  • 使用assert的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。
  • 在调试结束后,可以通过在包含#include的语句之前插入#define NDEBUG来禁用assert调用。

assert失败时如何打印附加信息?

通常,如果assert失败,人们希望打印出额外的信息。这样做的一种方法是:

assert(vec.size()>i||!(std::cerr<<"False: "<<vec.size()<<">"<<i))

这样,当assert出现故障时,会打印出实际大小。但是很容易忘记!,它将使断言条件为真,程序将继续运行。

http://www.jsqmd.com/news/122725/

相关文章:

  • 成都自助洗车加盟公司排名出炉(2025最新名单) - 朴素的承诺
  • 【企业安全防线重建】:基于Open-AutoGLM的日志查询权限分级方案详解
  • 零基础打造专业H5营销页面,强大源码系统让创意轻松落地
  • 科研开题的“智慧锦囊”:书匠策AI开题报告功能,解锁学术新姿势
  • Nimble改国内下载源
  • 科研起航新引擎:书匠策AI开题报告功能,为学术探索装上“智能导航”
  • 还在裸奔存储日志?Open-AutoGLM加密方案必须马上落地的3个理由
  • Open-AutoGLM账号锁定策略配置全解析(企业级安全加固方案)
  • fidder一些使用
  • 2025年12月短视频运营与网站建设综合服务商推荐榜:广东中山企业宣传片拍摄、工厂短视频制作、外贸独立站建设一站式解决方案 - 品牌企业推荐师(官方)
  • 鸿蒙应用的网络请求和数据处理:从HTTP到本地缓存的完整方案
  • CAD核心功能模块解析:从概念到制造的数字化桥梁
  • 从源头到服务:2025年值得关注的十大气体分析仪生产厂家年终评选 - 品牌推荐大师
  • Python 数据清洗教科书:40 个 Pandas 技巧解决 90% 的脏数据
  • Open-AutoGLM如何实现无缝MFA集成:3个关键技术点你必须掌握
  • Open-AutoGLM多因素认证落地实践(99%团队忽略的配置陷阱)
  • 高效创作H5场景秀的PHP源码系统,流畅体验,一键生成营销页面
  • LangFlow外链建设策略:高质量引用来源
  • 论文速读 | 25年12月
  • 罗伦士商务车:解析新款上市、车型与未来趋势 - mypinpai
  • 鸿蒙开发环境搭建完全指南:从零开始学习HarmonyOS开发
  • 全新升级H5场景制作工具,PHP源码助力营销页面轻松生成
  • 【企业安全防线升级】:基于Open-AutoGLM的7种典型异常访问识别方案
  • 十大口碑装修公司揭秘,金煌家装脱颖而出 - myqiye
  • LangFlow Huawei Cloud FunctionGraph测评
  • 还在为身份安全担忧?Open-AutoGLM MFA集成方案一文搞定
  • 鸿蒙应用性能优化的5个实战技巧
  • 第9篇 | 洪水猛兽:拒绝服务攻击(DoS / DDoS)的原理与演变
  • 鸿蒙ArkTS语言特性详解:从TypeScript到ArkTS的进阶之路
  • Day44 PythonStudy