assert()函数(断言函数)

简介: assert()函数(断言函数)

assert()函数(断言函数)

一,快速了解一下assert函数

void assert (int expression);//括号里面是一个表达式。
  1. assert函数是一个宏。
  2. 括号里面的表达式如果为真,程序正常执行。
  3. 如果函数形式的宏的参数表达式比较等于零(即表达式为false),则会向标准错误设备写入一条消息,并调用中止,从而终止程序执行。。
  4. 显示的消息的具体内容取决于特定的库实现,但至少应包括:断言失败的表达式、源文件的名称以及发生断言的行号。常用的表达式格式为:
    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,filefilename,linelinenumber
  5. 在代码的开头,在包含**<assert.h>**之前。
  6. 此宏被设计为捕获编程错误,而不是用户或运行时错误,因为它通常在程序退出调试阶段后被禁用。

二,通过代码来清楚展现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,程序正常执行们不会弹出消息框。
    
}

~~表达式为假时输出结果 :

相关文章
|
7月前
|
C语言
C语言assert断言
C语言assert断言
|
2月前
|
C++
魔法指针 之 assert断言 传址调用 传值调用
魔法指针 之 assert断言 传址调用 传值调用
28 0
|
7月前
|
传感器 安全 编译器
【C++断言机制】深入理解C/C++ 中静态断言static_assert与断言 assert
【C++断言机制】深入理解C/C++ 中静态断言static_assert与断言 assert
165 0
|
7月前
|
编译器
C++11 静态断言(static_assert)的介绍:介绍静态断言(static assert)在C++11 中的作用和使用方法
C++11 静态断言(static_assert)的介绍:介绍静态断言(static assert)在C++11 中的作用和使用方法
54 0
|
7月前
|
算法 编译器 C语言
C语言assert断言详解指针(3)
C语言assert断言详解指针(3)
|
7月前
printf函数的返回值
printf函数的返回值
41 0
|
7月前
|
C#
C#调试与测试 | Assert(断言)
什么是Assert呢? 断言是一种用于在程序运行时检查条件是否满足的工具。如果条件不满足,断言就会抛出一个异常,从而帮助我们快速定位问题并进行调试。 在C#中,可以使用Debug.Assert方法来实现断言,该方法接受一个布尔表达式作为参数,如果该表达式的值为false,就会抛出一个AssertionFailedException异常。
329 0
|
测试技术
|
程序员 C语言
assert断言与const修饰指针的妙用(模拟实现strcpy函数)
assert断言与const修饰指针的妙用(模拟实现strcpy函数)