【转载】Qt 断言Q_ASSERT的使用

news/2025/11/27 13:26:58/文章来源:https://www.cnblogs.com/JiaYuBaoBao/p/19277146

在使用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.mzph.cn/news/978374.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年修补防水涂料推荐厂家及其市场分析

在当今市场中,选择合适的修补防水涂料厂家显得尤为重要。随着建筑行业的快速发展,各类修补防水涂料的制造厂家不断增多,产品也日益丰富。在这篇文章中,我们将对不同厂家进行细致分析,涵盖其产品种类、质量及市场评…

连续状态方程Tustin离散化处理 - 实践

连续状态方程Tustin离散化处理 - 实践2025-11-27 13:17 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !i…

2025年北京、上海、深圳协议离婚律师推荐排行榜:哪个好?哪个靠谱?选哪个?

离婚对很多人来说是艰难的抉择。如果夫妻双方能就财产分割、子女抚养等达成一致,选择协议离婚往往更快捷省心。可是在北上广深等一线城市,婚姻家事律师团队繁多,面对“北京协议离婚律师”“上海协议离婚律师”“深圳…

Shell脚本实战:15个提高工作效率的自动化脚本

1. 服务器资源监控脚本 这个脚本能实时监控CPU、内存、磁盘使用情况,当资源使用率超过阈值时自动发送告警。 # resource_monitor.sh - 服务器资源监控脚本# 设置阈值 CPU_THRESHOLD=80 MEM_THRESHOLD=85 DISK_THRESHO…

【转载】Qt 多次connect的坑

1、坑的现象 有时项目中一个信号发出,对应连接的槽函数会执行多次,普通刷新界面都不会有问题,但是特别频繁的就会影响性能,如果是改变数据的,更有甚者会异常崩溃 2、遇坑的原因 qt中同一实例的同一信号和槽,conn…

2025年检查井定制厂家十大推荐,雨水检查井与预制装配式检查

在市政工程、房地产开发与污水处理等领域,检查井作为地下管网的枢纽节点,直接影响工程质量与长期运维成本。面对市场上参差不齐的供应商,如何选择能解决适配难、施工慢、维护贵等痛点的检查井定制厂家?以下依据产品…

2025年襄阳地区十大包装盒定制企业推荐:知名的包装盒机构有

本榜单依托鄂西北包装市场调研与真实客户口碑,深度筛选出十家标杆企业,为襄阳、十堰、随州、荆门、谷城等地的企业选型提供客观依据,助力精准匹配适配的包装盒定制服务伙伴。 TOP1 推荐:襄阳怡林彩色印务有限公司 …

2025年深圳东莞惠州塑胶外壳定制公司推荐:安全环保的塑胶外

本榜单基于珠三角塑胶模具行业调研、企业真实口碑与技术实力评估,筛选出5家安全环保塑胶外壳定制标杆企业,为电子、家电类企业提供选型参考,助力匹配高性价比服务伙伴。 TOP1 推荐:深圳市金鸿兴塑胶模具有限公司 推…

2025年修补料砂浆源头厂家对比榜

在2025年修补料砂浆行业中,从源头厂家选取合适的供应商至关重要。那些工厂不仅具备可靠的生产能力,还能提供丰富的技术支持,确保您的施工顺利进行。选择时,可以关注每个厂家的产品特性、市场反馈和专业服务。了解修…

2025年十大靠谱塑胶外壳厂家推荐,口碑靠谱的塑胶外壳供应商

在消费电子、智能家居等行业快速发展的背景下,塑胶外壳作为产品的颜值担当与防护屏障,其品质直接影响产品竞争力。面对市场上良莠不齐的供应商,如何找到[靠谱的塑胶外壳]?以下依据不同类型,为你推荐2025年十大口碑…

大模型高效微调(Finetune)实战教程

Unsloth是一个开源工具,专门用来加速大语言模型(LLMs)的微调过程。它的主要功能和优势包括:🔭 高效微调:Unsloth 的微调速度比传统方法快 2-5 倍,内存占用减少 50%-80%。这意味着你可以用更少的资源完成微调任…

【转载】Qt QCustomPlot 使用整理

QCustomPlot 是一个比较小的 QT 图表插件。使用时,我们在程序中写完相关调用的代码后,只需将 QCunstomPlot.cpp 和 QCustomPlot.h 两个文件加入工程,正常编译即可。看起来使用挺方便。对于简单的,效率不高的数据可…

Windows实用小工具使用教程!OFGB专治 Windows 11 广告的神器+自动滚屏小工具!

软件获取点这里 实用小工具第一款:OFGB - Windows 11系统广告屏蔽工具 工具介绍 OFGB(“广告滚蛋”)是一款专为Windows 11量身打造的免费开源广告屏蔽工具。自从Windows系统更新后,系统广告越来越多——文件管理器…

八数码难题

果然是天才的灵光一现 #include <bits/stdc++.h> using namespace std; int dx[4]={1,-1,0,0}; int dy[4]={0,0,1,-1}; int bfs(string st) {map<string,int>m;queue<string>pq;m[st]=0;pq.push(st)…

趣睡科技与强脑合作:AI算法赋能睡眠健康

在《2025年中国睡眠健康调查报告》中,一组数据揭示了当代人的普遍困境:近半数18岁及以上人群正遭受睡眠困扰。当无数人在深夜辗转反侧,睡眠质量已成为影响日常生活和健康的核心问题之一。在这一背景下,趣睡科技与强…

【转载】Qt QCustomPlot 使用教程

(一)——安装与配置 1、下载去 Qt Plotting Widget QCustomPlot - Download下载需要版本的QCustomPlot的压缩包QCustomPlot.tar.gz,下载解压后会得到qcustomplot的.cpp与.h文件,这两个文件是我们需要的。 2、添加到…

2025年11月营销智能体选择指南:权威榜单与用户评价深度分析

在数字化转型加速的今天,企业营销面临数据孤岛、决策效率低、成本控制难等共性挑战。作为营销决策者或业务负责人,您可能需要通过智能技术优化广告投放、客户运营或内容策略,但市场上工具繁多、功能参差,如何选择适…

2025年11月营销智能体推荐榜单:主流平台综合对比与选择指南

在数字化转型浪潮中,企业营销面临数据孤岛、决策效率低下、用户触达精准度不足等共性挑战。营销智能体作为人工智能技术在营销领域的具体应用,通过数据驱动与自动化决策,正逐步成为企业提升营销效能的关键工具。根据…

2025年11月营销智能体推荐榜单:主流平台列表与权威选择指南

在数字化转型浪潮中,企业营销面临着数据孤岛、决策效率低下、用户触达不精准等普遍痛点。营销智能体作为人工智能技术在营销领域的重要应用,正逐步成为企业提升营销效果的关键工具。根据行业报告显示,超过60%的大型…

2025年11月营销智能体推荐榜单:五大主流平台深度对比与选择指南

在当前数字化营销快速迭代的背景下,企业对于智能化决策工具的需求日益显著。作为营销决策者或企业管理者,您可能正在寻找能够有效整合数据、优化营销流程并提升转化效率的智能解决方案。营销智能体作为一种融合人工智…