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

【转载】Qt 断言Q_ASSERT的使用

在使用Qt开发大型软件时,需要对程序进行调试,以确保程序内的运算结果符合我们的预期。在不符合预期结果时,就直接将程序断下,以便修改。

assert()是一个调试程序时经常使用的宏,在程序运行时它计算括号内的表达式,如果表达式为FALSE (0), 程序将报告错误,并终止执行。如果表达式不为0,则继续执行后面的语句,它的作用是终止程序以免导致严重后果,同时也便于查找错误。

Qt中断言函数有两个:
(1)

void Q_ASSERT(bool test)

当表达式为false时打印出警告消息。
示例:

复制代码
 1 #include <QCoreApplication>
 2 #include <QDebug>
 3  
 4 int main(int argc, char *argv[])
 5 {
 6     QCoreApplication a(argc, argv);
 7  
 8     int c = 4;
 9     int b = 3;
10     int d = c + b;
11  
12     Q_ASSERT(d == 5);
13  
14     qDebug() << "Finish.";
15  
16     return a.exec();
17 }
复制代码

结果:
编译调试,由于d不等于5,程序被断言掉。

 同时,程序给出断言位置,为程序修改提供了便利。
(2)

void Q_ASSERT_X(bool test, const char *where, const char *what)

当test为false时,打印警告信息,警告信息包含自定义信息。
示例:

复制代码
 1 #include <QCoreApplication>
 2 #include <QDebug>
 3  
 4 int main(int argc, char *argv[])
 5 {
 6     QCoreApplication a(argc, argv);
 7  
 8     int c = 4;
 9     int b = 3;
10     int d = c + b;
11  
12 //    Q_ASSERT(d == 5);
13     Q_ASSERT_X(d == 5, "Error", "Error 1");
14  
15     qDebug() << "Finish.";
16  
17     return a.exec();
18 }
复制代码

结果:

 这两个断言仅在没有定义宏QT_NO_DEBUG的情况下有效。

转载:https://www.cnblogs.com/ybqjymy/p/16493783.html

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

相关文章:

  • 2025年修补防水涂料推荐厂家及其市场分析
  • 连续状态方程Tustin离散化处理 - 实践
  • 2025年北京、上海、深圳协议离婚律师推荐排行榜:哪个好?哪个靠谱?选哪个?
  • Shell脚本实战:15个提高工作效率的自动化脚本
  • 【转载】Qt 多次connect的坑
  • 2025年检查井定制厂家十大推荐,雨水检查井与预制装配式检查
  • 2025年襄阳地区十大包装盒定制企业推荐:知名的包装盒机构有
  • 2025年深圳东莞惠州塑胶外壳定制公司推荐:安全环保的塑胶外
  • 2025年修补料砂浆源头厂家对比榜
  • 2025年十大靠谱塑胶外壳厂家推荐,口碑靠谱的塑胶外壳供应商
  • 大模型高效微调(Finetune)实战教程
  • 【转载】Qt QCustomPlot 使用整理
  • Windows实用小工具使用教程!OFGB专治 Windows 11 广告的神器+自动滚屏小工具!
  • 八数码难题
  • 趣睡科技与强脑合作:AI算法赋能睡眠健康
  • 【转载】Qt QCustomPlot 使用教程
  • 2025年11月营销智能体选择指南:权威榜单与用户评价深度分析
  • 2025年11月营销智能体推荐榜单:主流平台综合对比与选择指南
  • 2025年11月营销智能体推荐榜单:主流平台列表与权威选择指南
  • 2025年11月营销智能体推荐榜单:五大主流平台深度对比与选择指南
  • HarmonyOS游戏开发入门:用ArkTS打造经典五子棋
  • 详细介绍:【论文阅读】AAAI 2025 | 面向精确分割式联邦学习的多模型聚合与知识重放
  • HarmonyOS文件操作进阶:上传/下载/解压全场景实战(含封装工具类)
  • Harmony ArkTS 并发编程全攻略:从基础概念到多线程实战,彻底搞懂性能优化
  • HarmonyOS 文件操作不用愁:沙箱机制解析 + 可抄代码,零基础上手
  • HarmonyOS ArkTS 状态管理 V2 全解析:新装饰器 + 实战示例 + 面试题(简述方便新手快速了解使用)
  • 2025最新机械密封件制造厂家实力榜!国内顶尖机械密封品牌权威发布,技术与服务双重保障,机械密封/机械密封件/釜用机械密封/双端面机械密封/机械密封维修品质与专业深度剖析,选择指南
  • 八皇后
  • 【日记】买了几个手办(270 字)
  • Tunee指导