当前位置: > 华清远见教育科技集团 > 嵌入式学习 > 讲师博文 > C语言之断言
C语言之断言
时间:2016-12-14作者:华清远见

今天给大家说说断言,如果出于一般性的学习C语言,应付考试的话,我想很少有人会在代码中使用断言,可能有的人在此之前从来没有使用过断言。

那么断言的使用到底能给我们的代码带来什么呢?我尽可能的把我所理解的断言的使用讲解清楚,希望我在此所讲的断言能够对你有所帮助,让你以后能够在代码中灵活使用断言。

在讲解之前,我们先来对断言做一个基本的介绍,让大家对断言有一个大致的了解。在使用C语言编写工程代码时,我们总会对某种假设条件进行检查,断言就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式。断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真。可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言,而在部署时禁用断言。同样,程序投入运行后,终用户在遇到问题时可以重新起用断言。它可以快速发现并定位软件问题,同时对系统错误进行自动报警。断言可以对在系统中隐藏很深,用其它手段极难发现的问题可以用断言来进行定位,从而缩短软件问题定位时间,提高系统的可测性。实际应用时,可根据具体情况灵活地设计断言。

通过上面的讲解我们对于断言算是有了一个大概的了解,那么接下来我们就来看看C语言中assert宏在代码中的使用。

运行程序:

假如我把上面的例子进行一下更改,如果出错返回值return 0, 看看会是什么效果呢?

执行结果:

大家看看这个出错的结果,很直观的说明出错的位置在第17行,copy_string()函数调用出错,那么就能实现快速定位出错位置了。

这么说来,在使用断言的时候就很方便了,但是有一点是需要注意的断言中传递的参数不能改变你程序正常执行的值,如果程序正常执行,那么结果不会对程序造成影响。

发表评论
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)