首页 > 代码库 > assert()用法
assert()用法
assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:[1]
#include <assert.h>
void assert( int expression );
assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。
//demo1.c#include <stdio.h>#include <assert.h>#include <stdlib.h> int demo1(int num){ assert(num>100); printf("demo2:%d\n",num); return 0;}//demo2.c#include <stdio.h>#include <assert.h>#include <stdlib.h> int demo2(int num){ assert(num>200); printf("demo2:%d\n",num); return 0;}//demo.c#include <stdio.h>#include <stdlib.h> int main( void ){ demo1(110); demo2(110);//不满足 num>200的条件,报错如下 return 0; }
测试现象:root@ubuntu:/work/demo# gcc *.c ;./a.out demo2:110a.out: demo2.c:7: demo2: Assertion `num>200‘ failed.Aborted
在调试结束后,可以通过在包含#include <assert.h>的语句之前插入 #define NDEBUG 来禁用assert调用,示例代码如下:
#include <stdio.h>
#define NDEBUG
#include <assert.h>
如:
//demo2.c
#include <stdio.h>#define NDEBUG //仅对本文件起作用#include <assert.h>#include <stdlib.h> int demo2(int num){ assert(num>200);//未编译展开宏。 printf("demo2:%d\n",num); return 0;}
现象:root@ubuntu:/work/demo# gcc *.c ;./a.out demo2:110demo2:110
参考:
1. assert()函数用法总结
http://www.cnblogs.com/ggzss/archive/2011/08/18/2145017.html
assert()用法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。