assert 是宏,而不是函数。它的原型定义在头文件 assert.h 中:

void assert( int expression );

宏 assert 经常用于在函数开始处检验传入参数的合法性,可以将其看作是异常处理的一种高级形式。assert 的作用是 先计算表达式 expression,然后判断:

  • 如果表达式值为假,那么它先向 stderr 打印错误信息,然后通过调用 abort 来终止程序运行。
  • 如果表达式值为真,继续运行后面的程序。

注意:assert 只在 DEBUG 下生效,在调试结束后,可以通过在 #include <assert.h> 语句之前插入 #define NDEBUG 来禁用 assert 调用。

#define NDEBUG
#include <assert.h>

【C语言】assert() 断言的作用相关推荐

  1. python assert 断言的作用

    python assert 断言句语格式及用法很简单.在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行最崩溃,不如在出现错误条件时就崩溃,这时候就需要assert断言的帮助.本文主要是 ...

  2. Python assert 断言函数

    使用assert断言是学习python一个非常好的习惯,python assert 断言句语格式及用法很简单.在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行最崩溃,不如在出现错误条件 ...

  3. C 语言编程 — 使用 assert 断言进行程序设计

    目录 文章目录 目录 断言 利用断言来提高代码的可测试性 自定义断言来满足需求 尽量在函数中使用断言来检查参数的合法性 避免在断言表达式中使用改变环境的语句 避免使用断言去检查程序错误 在防错性程序设 ...

  4. 断言(assert)及其作用

    文章目录 断言(assert)及其作用 为什么断言只用于测试阶段 关于断言你需要注意的事 断言(assert)及其作用 断言是一种除错机制,用于验证代码是否符合编码人员的预期.编码人员在开发期间应该对 ...

  5. C语言 assert 函数 - C语言零基础入门教程

    目录 一.assert 函数简介 二.assert 函数使用 三.assert 函数用法总结与注意事项 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C ...

  6. C语言assert关键字

    这是C语言的assert.h头文件的定义 #include "cvidef.h" #include "cvirte.h" #ifndef _ASSERT_H_ ...

  7. C语言assert函数完全攻略

    断言assert函数,C语言assert函数完全攻略 对于断言,相信大家都不陌生,大多数编程语言也都有断言这一特性.简单地讲,断言就是对某种假设条件进行检查.在 C 语言中,断言被定义为宏的形式(as ...

  8. java assert函数_assert函数-论java中assert函数和Python、PHP、C语言assert函数

    assert函数广泛在java.Python.PHP.C语言中存在,都有统一的意义,用业界语言称之为"断言".最初的出发点都是为了方便调试而设计的,但是最近越来越多的开发者不分测试 ...

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

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

最新文章

  1. 计算机中丢失sense3.dll,sense3.dll
  2. Windows7 Search Federation功能解读
  3. 数据结构与算法--丑数
  4. my-innodb-heavy-4G.cnf中文注释(主要配置文件注释)
  5. 谷歌AI用“深度”学习来虚化背景,单摄手机可用,Jeff Dean表示优秀
  6. 全球约39亿人未接入互联网 韩国家庭宽带普及率最高
  7. weblogic管理3 - 生产模式下免密码管理配置
  8. ios 图片逆时针旋转_iOS 图片旋转方法实例代码
  9. Java调用第三方http接口的方式
  10. inav是什么意思?
  11. 干货 | Windows 10如何卸载新版Edge浏览器
  12. “被授权”泛滥 个人信息保护怎么管?
  13. 小米路由器3G建站折腾笔记6 - 总结
  14. c#的decode用法
  15. java json asc排序_按ASCII码给json对象排序
  16. HDU2037:今年暑假不AC
  17. c 调试易语言dll,易语言制作调试助手
  18. iptables nat及端口映射 【转】
  19. 二进制数组转成十六进制字符串,以及十六进制字符串转二进制字符串
  20. LaTeX minted报错Package minted Error: Missing Pygments output

热门文章

  1. 网络通过猫传输到计算机,网络直接从光猫出来好还是接个路由器再接入电脑好?看完搞懂了...
  2. java wgs84转西安80_如何将西安80坐标转换为国家2000(或WGS84)坐标系?
  3. 记录一下在上海考驾照经历
  4. 为什么我们需要TOGAF企业架构?——上海信息化培训中心
  5. 西南联大数字复原项目获国际论坛奖项 百度AI赋予历史温度
  6. 简单的自动化测试模型(python+selenium)
  7. 红色作为交通信号灯颜色是因为它对脑电波有影响吗?
  8. SQL Server数据库插入数据中文显示乱码问题
  9. 4.15 最短路 题
  10. 长达1.5年华强北耳机微妙体验