assert()函数用法

来源:互联网 发布:敬汉卿 知乎 编辑:程序博客网 时间:2024/06/14 03:14

1.assert()包含于头文件assert()中,主要有assert()宏组成,它接受一个int表达式作为其参数,若表达式求值的结果
为真(1),则继续程序的执行;若为假,则assert()宏就在标准错误流(stderr)中写入一条错误信息,并同时
调用abort()函数来终止程序。assert()函数的主要功能是用于辅助调试程序。

#include <stdio.h>#include <stdlib.h>#include <assert.h>int main(void)  {  int a,b,c;  printf ("input a,b:(0 0 to quit)");    while ((scanf ("%d%d",&a,&b)==2)&&(a!=0||b!=0))    {       fflush(stdin);       c=a*a-b*b;       assert(c>0);         printf ("a=%d,b=%d,c=%d\n",a,b,c);       puts ("Next pair of numbers:");    }  system ("pause");  return 0;  }

我这里特意输入:3 5; c = 3*3-5*5结果<0;于是程序会立刻终止并且弹出一条消息:
这里写图片描述

1)使用if条件判断语句也能实现同样的效果;如if(c<0)    {        puts("error.");        abort();    }但是使用assert()函数有许多的有点:能自动标识文件出问题的行号;无需更改代码就能开启或者关闭abort()机制;
0 0
原创粉丝点击