C语言中断言库与断言函数assert()的用法总结

文章介绍了断言函数assert()的功能,它在表达式为假时引发错误并终止程序,常用于调试阶段标识问题行号。通过#defineNDEBUG可以禁用assert()。在算法实现中,assert()用于检查关键条件,如队列操作中的空指针检查。
摘要由CSDN通过智能技术生成

断言函数的使用

话不多说,先来个例子感受一番断言函数assert()到底有什么功能。
在这里插入图片描述

由上面例子可知,assert()函数中在z的值大于40的时候什么问题都没有,可当z的值小于40的时候就直接报错Assertion failed,并且给出了报错行就在assert()函数这一行,说明z小于40时assert()函数直接终止了程序

断言函数及断言库总结

断言函数函数原型为:void assert (int expression),包含在头文件assert.h
他接受一个整形表达式作为参数(z > 40):
如果表达式为假,则assert()函数就在标准错误流中写入一条错误信息,也就是报错嘛。并且会调用abort()函数终止程序(**abort()函数的原型就在stdlib.h**中)。
如果表达式为真,则程序顺利通过。

#define NDEBUG

使用assert()函数不仅可以自动标识出出问题的行号,而且如果觉得程序没有什么问题,可以在#include <assert.h>头文件前面加上#define NDEBUG,由下图可以看到,加了#define NDEBUG之后assert()函数就失效了。
在这里插入图片描述

断言函数在常见算法中的使用

断言函数在一些算法中,经常出现,作为判断某个指标是否达标的条件。比如在队列实现中
例如:队列指针为Queue * pq;
在一些入队、出队等操作中会先检验一下pq指针是否为空,这个时候就可以使用断言函数assert(pq);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江南霹雳堂雷家雷无桀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值