assert

assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行

原型:#include<assert.h>

          void assert*(int expression)

assert的作用是计算表达式expression,如果其值为假,那么它先向stderr打印一条出错信息,

然后通过调用abort来终止程序运行。

用法:在函数开始处检验传入参数的合法性。

#include <stdio.h>
#include <assert.h>

int p(int n);
int main()
{
	int m,k;
	scanf("%d",&m);
	for(k=m;k>=5;k--)
		if((p(k)+p(k-2))==2)
		{
			printf("%d %d",k-2,k);
		    break;
		}
	return 0;
}

int p(int n)
{
	int i,f=1;
	assert(n>=0);
	for(i=2;i<n/2;i++)
		if(n%i==0)
		{
			f=0;
		    break;
		}
	return f;
}
程序使用了assert宏来限制非法的函数调用:当x>=0不成立时,程序将异常终止,并给出提示信息。

检查非法参数是很有用的:当算法很复杂时,一不小心就会用非法参数调用某些自定义函数。

合理利用assert宏,将给调试带来很大方便。

在编写和调试算法程序中,assert会“迫使”我们编写更高质量的程序!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值