assert.h
assert.h
简介
assert.h 常用于防御式编程。防御式编程是提高软件质量技术的有益辅助手段。防御式编程的主要思想是:子程序应该不因传入错误数据而被破坏,哪怕是由其他子程序产生的错误数据。这种思想是将可能出现的错误造成的影响控制在有限的范围内。
断言 assert 就是声明某种东西为真,该函数多用于调试。
宏函数
assert
原型:
void assert (int expression);
说明:aserrt 是一个宏而非函数,实际并不具有函数原型。当它被执行时,判断
expression
的真假,如果为假,它就向标准错误打印一条诊断信息并终止程序。当消除所有预期错误后,可以通过#define NDEBUG
消除所有断言。返回值:无。
实例:
#include <stdio.h>
#include <assert.h>
//#define NDEBUG //定义后,预处理器将丢弃所有 assert 函数。
void dialog(int *p){
assert( p != NULL );
printf("%d", *p);
}
int main(){
int a = 10;
int *pa = NULL, *pb = NULL;
pa = &a;
dialog(pa);
dialog(pb);
return 0;
}
控制台会输出:
> assertion failed: p != NULL, file c:\\...\\....\\...\test.c, line 9
相关阅读
NVIDIA面试笔试题之一:assert.h是c标准库的一个头文件,该头文件的主要目的就是提供一个assert的宏定义。assert只是对所给的表达式