assert.h头文件之断言

       在现实世界中,我们脑袋时刻都在判断对与错,对的事情我们会继续深入下去,而错的事情我们会马上停止,那么在编程开发中我们如何赋予程序这种判断事物对错的能力呢?其中一个方案就可以使用断言assert,我们最常用的地方就是在函数中检查形参的数据合法性。

1、函数所属头文件:

        assert.h

2、函数原型:

        void assert (int expression);

3、功能说明:

        assert的关键在于判断expression的逻辑真假,如果为false,就会在stderr上面打印一条包含“表达式,文件名,行号”的错误信息,然后调用abort结束整个程序。

4、程序实例:

#include <stdio.h>
#include <stdlib.h>
//#define NDEBUG		//可以禁止断言
#include <assert.h>

void main()
{
	//测试true情况:以写打开一个文件,不存在则创建新文件
	FILE *fpWrite = fopen("d:\\testWrite", "w");

	//不会出错
	assert(fpWrite != NULL);

	fclose(fpWrite);

	//测试false情况:以读打开一个文件,不存在会失败
	FILE *fpRead = fopen("d:\\testRead", "r");

	//会出错
	assert(fpRead != NULL);

	//程序调用abort退出,不会执行到此步
	fclose(fpRead);
	system("pause");
}
       当然,频繁的调用assert会影响系统性能,增加系统额外的开销,如果想禁用断言功能时,可以在assert.h头文件之前定义NDEBUG。


  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值