news 2026/6/9 22:36:04

C++调试宏与断言

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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出现故障时,会打印出实际大小。但是很容易忘记!,它将使断言条件为真,程序将继续运行。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 21:43:20

跟我一起从头开始学 AI - RAG 技术学习指南

0. 写在开头 开头先分享最近的一点感触&#xff0c;虽然有时候我们会横眉冷对一些夸大宣传或者是利用信息差的产品&#xff0c;但是还是得尊重产品本身的技术和应用领域&#xff0c;比如&#xff1a;为什么它能夸大宣传&#xff1f;信息差在哪里&#xff1f;满足了哪些用户需求…

作者头像 李华
网站建设 2026/6/10 4:09:57

LangFlow Alibaba Cloud FC实践总结

LangFlow 与阿里云函数计算&#xff1a;低代码构建 AI 工作流的实践之路 在企业加速拥抱大模型的今天&#xff0c;一个现实问题日益凸显&#xff1a;如何让非专业开发者也能快速参与 AI 应用的设计与验证&#xff1f;传统的开发模式往往要求团队具备扎实的 Python 编程能力、熟…

作者头像 李华
网站建设 2026/6/10 12:46:00

CAD核心功能模块解析:从概念到制造的数字化桥梁

现代计算机辅助设计&#xff08;CAD&#xff09;软件已成为工程设计和产品开发的核心工具&#xff0c;其模块化功能覆盖了从概念构思到生产制造的完整流程。下面将针对CAD的六大核心模块&#xff0c;解析它们各自的作用及适用场景。草图模块&#xff1a;设计的起点作用&#xf…

作者头像 李华
网站建设 2026/6/10 9:40:12

日志越权访问频发?,一文搞懂Open-AutoGLM权限隔离与审计机制

第一章&#xff1a;日志越权访问的现状与挑战 在现代分布式系统和微服务架构广泛普及的背景下&#xff0c;日志数据已成为系统运维、故障排查和安全审计的核心资源。然而&#xff0c;随着日志集中化存储和跨服务共享的普及&#xff0c;日志越权访问问题日益凸显&#xff0c;成为…

作者头像 李华
网站建设 2026/6/9 20:14:31

第9篇 | 洪水猛兽:拒绝服务攻击(DoS / DDoS)的原理与演变

《网络安全的攻防启示录》 第一篇章:破壁之术 第9篇 “最残酷的攻击,往往不需要偷走你的任何东西,只需要堵住你的门。” 开篇场景|系统没被黑,却“死”了 你有没有遇到过这种情况: 双十一零点:购物车里的东西怎么也提交不了,App 一直转圈。 热门游戏开服:所有人都卡…

作者头像 李华