我是靠谱客的博主 冷傲芒果,最近开发中收集的这篇文章主要介绍关于assert,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.什么是assert?

  在C中assert是定义在<assert.h>中的一个macro define。

  语法规范:assert(expr):如果expr为真,则继续执行下一句;如果expr为假,报错:assertion 'expr' failed并退出程序

2.assert有什么用?

assert是一种防御式编程方式,减少编程错误。最常用的是在函数开始的地方,检测所有参数。有时候也可以在调用函数后,检查上下文是否正确。在代码中适当位置使用assert可以有效的帮助我们测试程序。

3.注意事项

  测试框架知识在开发和调试的时候有用。

  release的软件:如果还要运行这些测试框架就会严重影响性能,所以C语言中规定如果包含在assert.h之前定义的一个NDEBUG宏,就可以禁用asset.h中的assert宏定义,代码中的assert就不起作用了·.

#define NDEBUG
#include <assert.h>
//特别的gcc 有定义macro的option
gcc -D NDEBUG

4.什么时候我们用assert什么时候我们处理运行时的错误(C中返回错误值或C++中throw异常)?

  如果那个错误是由于程序员错误编码所造成的(例如传入不合法的参数),应该使用assert;如果那个错误是程序员无法避免,而是由运行时的环境所造成的,就要处理运行时错误(例如开启文件失败,数据库打开失败)。

 

 

转载于:https://www.cnblogs.com/lewisliu111/p/9700785.html

最后

以上就是冷傲芒果为你收集整理的关于assert的全部内容,希望文章能够帮你解决关于assert所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部