当前位置: 首页 > 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.gsyq.cn/news/134900.html

相关文章:

  • 最近基于libmodbus开发的mes软件
  • Nimble改国内下载源
  • 还在裸奔存储日志?Open-AutoGLM加密方案必须马上落地的3个理由
  • Python 数据清洗教科书:40 个 Pandas 技巧解决 90% 的脏数据
  • Open-AutoGLM如何实现无缝MFA集成:3个关键技术点你必须掌握
  • 从源头到服务:2025年值得关注的十大气体分析仪生产厂家年终评选 - 品牌推荐大师
  • 鸿蒙开发环境搭建完全指南:从零开始学习HarmonyOS开发
  • 罗伦士商务车:解析新款上市、车型与未来趋势 - mypinpai
  • 还在为身份安全担忧?Open-AutoGLM MFA集成方案一文搞定
  • LangFlow Huawei Cloud FunctionGraph测评
  • 鸿蒙ArkTS语言特性详解:从TypeScript到ArkTS的进阶之路
  • Day44 PythonStudy
  • 揭秘Open-AutoGLM日志加密机制:如何构建企业级数据防护体系
  • 【数据合规必读】:Open-AutoGLM日志加密的7个关键实现细节
  • C#/.NET/.NET Core技术前沿周刊 | 第 64 期(2025年12.1-12.21)
  • 2025年12月企业管理咨询公司推荐榜单:十家权威机构深度对比分析 - 品牌推荐
  • 配置不当=系统裸奔?,Open-AutoGLM安全策略必须掌握的3个核心点
  • day40打卡
  • 12款主流降AI工具实测大盘点(含免费版) - 殷念写论文
  • LangFlow内部链接结构优化建议
  • 仅限高级安全团队掌握的技术:Open-AutoGLM动态访问审计部署秘籍
  • 元旦贺卡设计指南:如何让电子祝福更有温度
  • 多机器人全覆盖路径规划:改变地图与机器人数量的Matlab实现
  • LangFlow Sidecar模式注入日志收集组件
  • ​深度复盘:一家“非典型”大厂,如何重构技术人才的价值坐标?
  • 湖南省长沙市自建房设计靠谱机构评测排行榜:5星平台优势及适配人群 - 苏木2025
  • Open-AutoGLM脱敏规则进阶配置(仅限内部分享的7种高级模式)
  • 看病(信息学奥赛一本通- P1371)
  • 【高危漏洞预警】:Open-AutoGLM未正确配置SSL证书将导致数据泄露?
  • 【专家亲授】Open-AutoGLM隐私保护实战:4个关键审计日志分析技巧