C++系统学习之C库assert

C库之<cassert>

assert.h定义了一个作为标准调试工具的宏

宏函数

函数说明
assertEvaluate assertion (macro)

assert

当使用assert()里,给它一个参数,即一个表示断言为真的表达式。预处理器产生测试该断言的代码。如果断言不为真,则发出一个错误信息告诉断言是什么以及的失败之后,程序会终止。下面是一个例子:

#include <cstdio>
#ifndef NDEBUG
#include <cassert>
#endif // NDEBUG

void cout_number(int * num)
{
#ifndef NDEBUG
	assert(num != NULL);
#endif // NDEBUG
	printf("%d\n", *num);
}

int main(int argc, const char **argv)
{
	int a = 100;
	int *b = NULL;
	int *c = NULL;

	b = &a;

	cout_number(b);
	cout_number(c); // Fails

	return 0;
}

当产生断言时会出现下面这种格式:

Assertion failed: expression, file filename, line line number 

这个宏是用来铺获编程错误,而不是用户或运行时错误,因此它通常是禁用程序退出后的调试阶段。

转载于:https://my.oschina.net/thismyhome/blog/1475742

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值