assert()函数(断言函数)
一,快速了解一下assert函数
void assert (int expression);//括号里面是一个表达式。
- assert函数是一个宏。
- 括号里面的表达式如果为真,程序正常执行。
- 如果函数形式的宏的参数表达式比较等于零(即表达式为false),则会向标准错误设备写入一条消息,并调用中止,从而终止程序执行。。
- 显示的消息的具体内容取决于特定的库实现,但至少应包括:断言失败的表达式、源文件的名称以及发生断言的行号。常用的表达式格式为:
A s s e r t i o n f a i l e d : ∗ e x p r e s s i o n ∗ , f i l e ∗ f i l e n a m e ∗ , l i n e ∗ l i n e n u m b e r ∗ Assertion failed: *expression*, file *filename*, line *line number*Assertionfailed:∗expression∗,file∗filename∗,line∗linenumber∗- 在代码的开头,在包含**<assert.h>**之前。
- 此宏被设计为捕获编程错误,而不是用户或运行时错误,因为它通常在程序退出调试阶段后被禁用。
二,通过代码来清楚展现assert函数
void EX(int a){ assert(a >= 0 && a < 10 ); if(a % 2){ printf("%d",a); } } int main(){ int a; a = -1; EX(a);//表达式为false,触发断言函数,弹出消息框,程序中止。 a = 4 ; EX(a);//表达式为true,程序正常执行们不会弹出消息框。 }
~~表达式为假时输出结果 :