断言:
程序一般分为debug版本和release版本,debug版本用于内部调试,release版本用于发行给用户使用。
断言assert时只在debug版本中起作用的宏,用于检查“不应该”发生的状况,运行中assert的参数如果为假,程序就会终止,一般还会出现提示对话,说明声明地方引发了assert。
例子:
#define
void func()
{
assert(true);
assert(false && true);
}
程序员可以吧assert看出是一个在任何系统状态下都可以安全使用的无害测试手段,如果程序在assert处终止了,并不是说含有该assert的函数有问题,而是调用者除了差错,assert可以帮助我们找到发生错误的原因。
使用断言的建议:
1、使用断言捕捉不应该出现的非法情况。非法情况不等于错误情况,后者时必然存在的并且是一定要被处理的。
2、函数入口处使用断言检查参数的有效性。
3、编写函数时需反复考察需要的“假定”,一单确定了需要的假定,就要使用断言对假定进行检查。