ASSERT(0) 详解
ASSERT(0) 详解
1.使用方法
在开发过程中我们可以假设只要程序运行正确,某一条件肯定成立。若不成立,那么我们可以断言程序肯定出错。在这种情况下我们可要利用ASSERT来设定断 言。ASSERT宏的参数是一个逻辑表达式,在程序运行过程中,若该逻辑表达式为真,则不会发生任何动作;若此表达式为假,则系统弹出一个对话框警告你, 并停止程序的执行。同时要求你作出选择:取消、忽略和重试。若你选择取消,则系统将停止程序的运行;若你选择忽略,则系统将忽略该错误,并继续执行程序; 若你选择重试,则系统将重新计算该表达式,并激活调试器。同TRACE宏一样,ASSERT宏只对Debug版本的工程产生作用,在Release 版本的工程中,ASSERT宏将被忽略。
下面的示例显示如何使用ASSERT检查函数的返回值:
int x = SomeFunc(y);
ASSERT( x >= 0); // 如果x为负,则断言失败。
可将断言用于:
(1)可以使用断言语句捕捉逻辑错误。可以在程序逻辑必须为真的条件上设置断言。除非发生逻辑错误,否则断言对程序无任何影响。 (2)可以使用断言语句检查操作的结果。断言对于快速直观地检查不明显的操作结果最有价值。
(3)可以使用断言在代码中已处理了错误的点处测试错误类型。
通俗点,意思是预防性的错误检查,在认为不可能的执行到的情况下加一句ASSERT(0),如果运行到此,代码逻辑或条件就可能有问题。
assert是判定parameter是否为真,为假就报错。
0为假,所以assert(0)永远都报错。
ASSERT(0) 详解相关推荐
- android 7 apk 安装程序,Android安装apk文件并适配Android 7.0详解
Android安装apk文件并适配Android 7.0详解 首先在AndroidManifest.xml文件,activity同级节点注册provider: android:name="a ...
- NEXT社区小课堂 | 第四课:dBFT 2.0详解 | 委托拜占庭容错:技术细节、挑战和前景...
NEXT社区 | 小课堂 由于近期NEXT社区加入很多新的小伙伴,有在校大学生,有对区块链感兴趣的传统企业从业者.为了更方便.更系统的让NEXT社区的伙伴们了解NEO的技术知识,因此我们开设了小课堂, ...
- CentOS 8.1安装MySQL 8.0详解
CentOS 8.1安装MySQL 8.0详解 引言 一.YUM在线安装 0.删除已安装的MySQL 1.添加MySQL Yum Repository 2.选择MySQL版本 3.安装MySQL 4. ...
- 百度细雨算法2.0详解,规避细雨算法解决方法
在我们优化当中,特别是一些刚入门的seo人员,为了营销,为了转化,就在网站网页里面到处乱插广告,如标题多次出现核心关键词,网页里面到处穿插微信啊电话号码之类等,严重影响了用户搜索体验,因此百度发布了& ...
- android apk安装过程,Android安装apk文件并适配Android 7.0详解
Android安装apk文件并适配Android 7.0详解 首先在AndroidManifest.xml文件,activity同级节点注册provider: android:name="a ...
- 30分钟学会EventBus3 0详解(二)(EventBus3 0的详细使用)(by星空武哥)
转载声明原创地址:http://blog.csdn.net/lsyz0021/article/details/52094855 30分钟学会EventBus3.0详解(一)(引入和初始化EventBu ...
- 给 Android 开发者的 RxJava1.0 详解 (转载)
作者:扔物线 HenCoder 给高级 Android 工程师的进阶指南: 前言 我从去年开始使用 RxJava ,到现在一年多了.今年加入了 Flipboard 后,看到 Flipboard 的 A ...
- css sheet2.0,详解CSS3.0(Cascading Style Sheet) 层叠级联样式表
CSS3.0(Cascading Style Sheet) 层叠级联样式表 快速入门: CSS01 h1 { color: red; } 标题一 CSS的三种导入方式: 行内样式(优先级最高,但不建议 ...
- SonarQube篇- CentOS7安装Sonarqube8.0详解
一 原文链接 https://notebook.yasithab.com/centos/centos-7-install-sonarqube 二 操作详解 1. 安装配置 SonarQube 1.1. ...
最新文章
- 时间就是金钱!Windows 上必装的 10 款高效软件
- 下载vs2008 beta2的新方法
- c的开始,求最大数。
- windows下安装emscripten
- RPM包及其管理 rpm命令
- Linux vi编辑器常见命令的使用
- 小米MIX4发布会还有新品?小米全面屏电视PRO官宣
- 2014年Q1台湾域名总量涨幅增95.7% 净增1201个
- 数据库基础知识——互动百科
- Python爬虫实例(含代码)超详细教程
- win7安装visio2016需要通用CRT(KB2999226)
- php ssl证书安装,PHPWAMP如何开启SSL,Apache下如何安装ssl证书?配置ssl证书很简单...
- php判断手机浏览器,php判断是不是手机浏览器访问
- 液压缸、气缸、电动缸的参数对比
- ARP报文及其工作过程
- 43款设计师必备英文设计字体【书法类字体】
- 全栈修炼:如何从Web前端迈向全栈开发
- 把经纬度转换为Geohash(准确)
- Kafka手动补录数据
- 安装的客户端程序被360安全卫士当成病毒