断言函数,用于在调试过程中捕捉程序的错误。

“断言”在语文中的意思是“断定”、“十分肯定地说”,在编程中是指对某种假设条件进行检测,如果条件成立就不进行任何操作,如果条件不成立就捕捉到这种错误,并打印出错误信息,终止程序执行

assert() 会对表达式expression进行检测:

  • 如果expression的结果为 0(条件不成立),那么断言失败,表明程序出错,assert() 会向标准输出设备(一般是显示器)打印一条错误信息,并调用 abort() 函数终止程序的执行。
  • 如果expression的结果为非 0(条件成立),那么断言成功,表明程序正确,assert() 不进行任何操作。

要打印的错误信息的格式和内容没有统一的规定,这和标准库的具体实现有关(也可以说和编译器有关),但是错误信息至少应该包含以下几个方面的信息:

  • 断言失败的表达式,也即expression
  • 源文件名称;
  • 断言失败的代码的行号。

大部分编译器的格式如下所示:

Assertion failed: expression, file filename, line number

assert()断言函数,用于在调试过程中捕捉程序错误相关推荐

  1. c语言中assert函数,C++ 中assert断言函数的基本用法

    在我们的实际开发过程之中,常常会出现一些隐藏得很深的BUG,或者是一些概率性发生的BUG,通常这些BUG在我们调试的过程中不会出现很明显的问题,但是如果我们将其发布,在用户的各种运行环境下,这些程序可 ...

  2. Python assert断言函数及用法

    Python assert断言函数及用法 Python assert 语句,又称断言语句,可以看做是功能缩小版的 if 语句,它用于判断某个表达式的值,如果值为真,则程序可以继续往下执行:反之,Pyt ...

  3. Python assert断言函数

    Python assert断言函数及用法 Python 中assert 语句,又称断言语句,可以看做是功能缩小版的 if 语句.它用于判断某个表达式的值,如果值为真,则继续执行:反之,Python 解 ...

  4. matlab语言中的assert断言函数

    1.MATLAB语言没有系统的断言函数,但有错误报告函数 error 和 warning.由于要求对参数的保护,需要对输入参数或处理过程中的一些状态进行判断,判断程序能否/是否需要继续执行.在matl ...

  5. c语言调试过程中的错误,C语言调试过程中duplicate symbol错误分析

    说明:在我们调试C语言的过程中,经常会遇到duplicate symbol错误(在Mac平台下利用Xcode集成开发环境).如下图: 一.简单分析一下C语言程序的开发步骤. 由上图我们可以看出C语言由 ...

  6. java cookie能存到服务器_Cookie技术用于将会话过程中的数据保存到( )中,从而使浏览器和服务器可以更好地进行数据交互。(5.0分)_学小易找答案...

    [单选题]下列选项中,用于对超链接和form表单中的action属性中设置的URL进行重写的方法是(5.0分) [判断题]安装好Tomcat后,就可以直接启动运行了,并不要先安装JDK.(5.0分) ...

  7. STM32调试过程中出现的问题1:

    STM32调试过程中出现的问题1: -\HARDWARE\KEY\key.c(47): error: #29: expected an expression if(key_up&&(K ...

  8. 在PHP输出时间代码调试过程中出现 “It is not safe to rely on the system’s timezone settings”

    在PHP输出时间代码调试过程中出现 "It is not safe to rely on the system's timezone settings" 解决方法可试试: 1.在p ...

  9. 变频器调试过程中的常用参数设置详解

    变频器调试过程中的常用参数设置详解 变频器的设定参数较多,每个参数均有一定的选择范围,使用中常常遇到因个别参数设置不当,导致变频器不能正常工作的现象.因此,变频器调试是从正确设置变频器参数开始的.以下 ...

最新文章

  1. java程序课程总结_java课程总结
  2. java创建线程的几种方式
  3. spring mvc使用的一些注意事项
  4. 一样入职的应届生工资不一样_天天向上汪涵透露工资细节,王一博拿的工资和他一样,不公平...
  5. 洛谷P5212:SubString(SAM、LCT)
  6. Android 上滑背景变淡,在Android中,如何平滑地将背景从一种颜色淡化到另一种颜色? (如何使用线程)...
  7. linux2.6 gcc,在Linux内核 2.6.38.7 上,gcc堆栈粉碎代码不工作 请帮助_gcc_开发99编程知识库...
  8. 图像视频压缩:深度学习,有一套
  9. Oracle故障:Breaking the connection before proto/dty negotiation, error raised 3136
  10. 二次元始,跌宕几年,至学术略有成就并步入业界的我与NLP的这七年时光!
  11. 汇编语言程序设计技巧详解(附例题)
  12. MATLAB GUI中显示数学公式
  13. 电信光纤ipv6-- 搭建属于自己的服务器
  14. IO流读取文件拒绝访问
  15. No discret job created in Oracle
  16. 轻松学Java基础篇 小白必备!
  17. 代数余子式之和怎么算_小明说养老 | 养老金怎么算之月平均缴费指数怎么来的?...
  18. 北航计算机学院马殿富,北京航空航天大学计算机学院院长马殿富演讲
  19. java指纹读取_Microsoft指纹读取器-迷你评论
  20. http1 http2 http 3 区别

热门文章

  1. python uiautomation选择list内容_蜗牛笔记-文章-UIAutomation使用中的问题
  2. 一点一点学习C++之笔记002
  3. 用tkinter画布(Canvas)作图,五角星
  4. 北外2010年同等学力英语考前辅导
  5. MessageBoxButtons.OKCancel的选择事件
  6. 系统学习Python——单元测试unittest:编写测试用例
  7. phpcms Flash上传修改为H5上传
  8. 热烈祝贺爱思华宝中国参加新加坡 EnterpriseIT 2016 展会
  9. ubuntu-16.04 详细安装教程(图文)附下载地址
  10. UltraEdit中shell语法高亮显示设置