C标准库assert.h assert.h 头文件

头文件<asser.h>的唯一目的是提供assert的定义。
在程序关键的部位可以使用该宏来断言,如果断言被证明为非真,我们希望程序在标准流输出一句适当的提
示信息。并且适时的终止。
如果在包含assert.h的前面没有定义NDEBUG,则该头文件将宏定活动形式,即:可以展开为一个表达式,测试断言是否正确,如果正确则继续执行,否则输出错误信息,并且终止程序。
例子;
定义NDENUG
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
int main()
{
printf("1 okhello n");
assert(1==4);
printf("2 okexit n");
return0;
}
结果:
*****************************************************************************************************************************
1 ok hello
assert_h_ex_nodebug: assert_h_ex.c:7: main: Assertion `1==4'failed.
已放弃
*****************************************************************************************************************************
没有定义NDEBUG
#include<stdio.h>
#include<stdlib.h>
#define NDEBUG
#include<assert.h>
int main()
{
printf("1 okhello n");
assert(1==4);;
printf("2 ok exit n");
return0;
}
结果:
********************************************************************************************************************************
1 ok hello
2 ok exit
C标准库assert.h assert.h 头文件
********************************************************************************************************************************
原理:
#define assert(test)if(!(test))
fprintf(stderr,"the failed : %s file %s ,line %in",#test,__FILE__,__LINE__);
abort();
模拟:
#include<stdio.h>
#include<stdlib.h>
//#define NDEBUG
//#include<assert.h>
#define Assert(test) if(!(test)) fprintf(stderr,"Assertion failed:%s, file %s, line %in", #test, __FILE__————, __LINE__);abort()
int main()
{
printf("1 okhello n");
Assert(1==4);
printf("2 okexit n");
return0;
}
结果:
*******************************************************************************************************************************
1 ok hello
Assertion failed: 1==4, file assert_h_ex.c, line 9
已放弃
*******************************************************************************************************************************

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/262884.html

更多阅读

c++标准头文件usingnamespacestd useing namespace std

尽量用不带.h的标准头文件来代替带.h的老式标准头文件(iostream.h等标准C++头文件直接去掉.h而stdio.h等标准C头文件则在去掉.h之后在前面加上c,比如stdio.h变为cstdio)按说.h的头文件都应

C语言学习经验总结

1. 类型在使用C开发时,一个类型占多少个字节是个很重要的信息元素,像C语言本身的类型系统并不能体现出这一点,容易使人混乱。一种好的方式是定义一套简洁易懂又一致的类型比如:定义一个stdint.h头文件#ifndef __STDINT_H#define __STDINT

sort()函数与qsort()函数及其头文件 c sort函数头文件

【转】sort()函数与qsort()函数及其头文件(2011-07-08 14:00:26)转载▼标签:杂谈sort()函数与qsort()函数及其头文件(2010-02-05 19:38:37)标签:杂谈分类:计算机基础知识今天在看程序时,遇见了sort()这个函数,我在网页上搜了一些资料,整合

声明:《C标准库assert.h assert.h 头文件》为网友馭電追風雨分享!如侵犯到您的合法权益请联系我们删除