他的作用于在调试过程中捕捉程序错误
void assert (int expression);
断言函数,用于在调试过程中捕捉程序的错误。“断言”在语文中的意思是“断定”、“十分肯定地说”,在编程中是指对某种假设条件进行检测,如果条件成立就不进行任何操作,如果条件不成立就捕捉到这种错误,并打印出错误信息,终止程序执行。
assert() 会对表达式
expression
进行检测:
- 如果
expression
的结果为 0(条件不成立),那么断言失败,表明程序出错,assert() 会向标准输出设备(一般是显示器)打印一条错误信息,并调用 abort() 函数终止程序的执行。 - 如果
expression
的结果为非 0(条件成立),那么断言成功,表明程序正确,assert() 不进行任何操作。
要打印的错误信息的格式和内容没有统一的规定,这和标准库的具体实现有关(也可以说和编译器有关),但是错误信息至少应该包含以下几个方面的信息:
- 断言失败的表达式,也即
expression
; - 源文件名称;
- 断言失败的代码的行号。
可以这么记忆,他和if函数相反的,
if(0)不执行if代码,
if(1)则执行if代码