断言是对某种假设条件进行检查。
C语言中,断言被定义成宏的形式,原型在
中。
#include
void assert( int expression );
assert
将通过检查表达式expression
的值来决定是否需要终止执行程序。
如果expression
的值为假,将首先向标准错误流stderr
打印一条出错信息,然后通过调用abort
函数终止程序运行,否则assert
无任何作用。
注意点
断言用来处理不应该发生的非法情况,而对于可能发生且必须处理的情况应该使用错误处理代码,而不是断言。
默认情况下,assert宏只在Debug版本中才能够起作用,在Release版本中将被忽略。
// 非Debug模式
#define NDEBUG
// Debug模式
#define DEBUG