【C语言】assert() 断言的作用
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() 断言的作用相关推荐
- python assert 断言的作用
python assert 断言句语格式及用法很简单.在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行最崩溃,不如在出现错误条件时就崩溃,这时候就需要assert断言的帮助.本文主要是 ...
- Python assert 断言函数
使用assert断言是学习python一个非常好的习惯,python assert 断言句语格式及用法很简单.在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行最崩溃,不如在出现错误条件 ...
- C 语言编程 — 使用 assert 断言进行程序设计
目录 文章目录 目录 断言 利用断言来提高代码的可测试性 自定义断言来满足需求 尽量在函数中使用断言来检查参数的合法性 避免在断言表达式中使用改变环境的语句 避免使用断言去检查程序错误 在防错性程序设 ...
- 断言(assert)及其作用
文章目录 断言(assert)及其作用 为什么断言只用于测试阶段 关于断言你需要注意的事 断言(assert)及其作用 断言是一种除错机制,用于验证代码是否符合编码人员的预期.编码人员在开发期间应该对 ...
- C语言 assert 函数 - C语言零基础入门教程
目录 一.assert 函数简介 二.assert 函数使用 三.assert 函数用法总结与注意事项 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C ...
- C语言assert关键字
这是C语言的assert.h头文件的定义 #include "cvidef.h" #include "cvirte.h" #ifndef _ASSERT_H_ ...
- C语言assert函数完全攻略
断言assert函数,C语言assert函数完全攻略 对于断言,相信大家都不陌生,大多数编程语言也都有断言这一特性.简单地讲,断言就是对某种假设条件进行检查.在 C 语言中,断言被定义为宏的形式(as ...
- java assert函数_assert函数-论java中assert函数和Python、PHP、C语言assert函数
assert函数广泛在java.Python.PHP.C语言中存在,都有统一的意义,用业界语言称之为"断言".最初的出发点都是为了方便调试而设计的,但是最近越来越多的开发者不分测试 ...
- c语言中assert函数,C++ 中assert断言函数的基本用法
在我们的实际开发过程之中,常常会出现一些隐藏得很深的BUG,或者是一些概率性发生的BUG,通常这些BUG在我们调试的过程中不会出现很明显的问题,但是如果我们将其发布,在用户的各种运行环境下,这些程序可 ...
最新文章
- 计算机中丢失sense3.dll,sense3.dll
- Windows7 Search Federation功能解读
- 数据结构与算法--丑数
- my-innodb-heavy-4G.cnf中文注释(主要配置文件注释)
- 谷歌AI用“深度”学习来虚化背景,单摄手机可用,Jeff Dean表示优秀
- 全球约39亿人未接入互联网 韩国家庭宽带普及率最高
- weblogic管理3 - 生产模式下免密码管理配置
- ios 图片逆时针旋转_iOS 图片旋转方法实例代码
- Java调用第三方http接口的方式
- inav是什么意思?
- 干货 | Windows 10如何卸载新版Edge浏览器
- “被授权”泛滥 个人信息保护怎么管?
- 小米路由器3G建站折腾笔记6 - 总结
- c#的decode用法
- java json asc排序_按ASCII码给json对象排序
- HDU2037:今年暑假不AC
- c 调试易语言dll,易语言制作调试助手
- iptables nat及端口映射 【转】
- 二进制数组转成十六进制字符串,以及十六进制字符串转二进制字符串
- LaTeX minted报错Package minted Error: Missing Pygments output
热门文章
- 网络通过猫传输到计算机,网络直接从光猫出来好还是接个路由器再接入电脑好?看完搞懂了...
- java wgs84转西安80_如何将西安80坐标转换为国家2000(或WGS84)坐标系?
- 记录一下在上海考驾照经历
- 为什么我们需要TOGAF企业架构?——上海信息化培训中心
- 西南联大数字复原项目获国际论坛奖项 百度AI赋予历史温度
- 简单的自动化测试模型(python+selenium)
- 红色作为交通信号灯颜色是因为它对脑电波有影响吗?
- SQL Server数据库插入数据中文显示乱码问题
- 4.15 最短路 题
- 长达1.5年华强北耳机微妙体验