Assert作用:
使用断言捕捉不应该发生的非法情况。不要混淆非法情况与错误情况之间的区别,后者是必然存在的并且是一定要作出处理的。
对于函数前置条件,后置条件和不变式的确认。 一般断言和接口文档对应;
debug和release版本说明,一般使用-D NDEBUG 在release版本中。
为什么大量使用Assert比较好:大型复杂程序错误的快速定位,可靠性程序和严格要求(需要任何函数都写);
可以在发布代码前发现更多问题,严格保证发布的健壮性;
Assert用法:
include assert.h头文件;
assert(表达式);
注意:
执行的代码不能放入断言中;
错误处理代码来处理可能会发生的情况,断言用来处理绝不应该发生的情况;
比如:有害的输入参数,应该使用错误处理代码;
当然有人可能说如果我们能把所有情况都考虑到了那都属于错误处理,但是断言在这种情况下也是有用的,保证我们的前提正确;
断言和错误处理在某些情况下功能是一致的;