C 标准库的 assert.h头文件提供了一个名为 assert 的宏,它可用于验证程序做出的假设,并在假设为假时输出诊断消息。
Note:
用#include <assert.h> 而不是#include <assert>进行包含!
assert
-
原型:
void assert (int expression);
-
说明:aserrt 是一个宏而非函数,实际并不具有函数原型。当它被执行时,判断
expression
的真假,如果为假,它就向标准错误打印一条诊断信息并调用abort终止程序。 -
频繁的调用assert会影响系统性能,增加系统额外的开销,如果想禁用断言功能时,可以在assert.h头文件之前定义NDEBUG。
#define NDEBUG
-
返回值:无。
assert.h头文件:
????
这个代码编译不报错,运行也没有abort:
/* assert example */
#include <stdio.h> /* printf */
#include <assert.h> /* assert */
void print_number() {
int * c = NULL;
assert (c!=NULL);
}
int main()
{
int a=10;
int * b = NULL;
int * c = NULL;
assert (bdddd!=NULL);
print_number();
return 0;
}
在c++中使用
#include <cassert>