C标准库assert.h assert.h 头文件
在程序关键的部位可以使用该宏来断言,如果断言被证明为非真,我们希望程序在标准流输出一句适当的提
示信息。并且适时的终止。
如果在包含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
********************************************************************************************************************************
原理:
#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
已放弃
*******************************************************************************************************************************
更多阅读
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语言相关------------数学库math.h,tgmath.h和complex.h c语言complex
数学库是一个庞大的库,而且数学函数的实现一般要涉及到特有的数值算法,因此这里也是作一个概述性的介绍。标准C中的数学库有3个头文件math.h,tgmath.h和co
儿童0-5岁身高.体重.头围标准表(汇总贴)(WHO标准2006)_儿童成长曲 头围算体重
为方便大家的浏览,将博客中儿童0-5岁相关的生长发育指标汇总在下面,涉及的指标数据均来自于WHO儿童生长标准2006版。男孩:男孩0-5岁身高标准表(WHO儿童生长标准2006)男孩0-5岁体重标准表(