assert格式
assert是C语言中的一个宏定义(需要包含assert.h),基本格式为
assert(bool expression);当bool expression的值为True,则assert不做任何动作;否则会在stderr中输出一条错误信息,其格式如下:Assertion failed: [expression], file [filename], line [nnn]assert的用法
在我们的代码中,若认为某些条件测试应该始终为真,就可以相应地放置assert
assert一般用于以下几个地方
- 模块输入参数的有效性检查(如数组长度不能小于0)
- 单元测试
- 特性维护(如数组下标不越界)
我的理解是:若含有assert的模块能通过充分的测试,则说明在代码不变动的情况下assert对应的条件是始终成立的,因此在测试完毕后可禁用assert
其他
1.assert的参数应该是一个单纯的布尔表达式,因为我们要求无论assert启用还是禁用,都不应对本身代码的功能有影响
2.禁用assert的方法
#define NDEBUG //注意顺序
#include <assert.h>3.频繁调用assert会极大影响程序性能,因此在测试完毕后应禁用assert4.注意区别assert和条件判断:条件判断是我们认为在程序中会有不同情况发生,据此做出不同操作
6050

被折叠的 条评论
为什么被折叠?



