assert函数
assert描述
用于判断一个条件是否成立的函数,在c语言中说的非常详细参考以上转载内容
assert_param(expr)
设计的比较巧妙,用来判断函数是否执行的一条语句,不满足所需的条件不执行,和 a>b?a:b; 语句基本一个思想,注意define其实是替换expr,需要在程序中确保本来就可以执行,并不算设计一个函数。
#define assert_param(expr) ((expr<0) ? (void)0 :fun(expr))
#include<stdio.h>
#include<assert.h>
//通过宏定义的方式来判断是否函数要执行,不符合条件的执行空语句 (void)0
#define assert_param(expr) ((expr<0) ? (void)0 :fun(expr))
void fun(int n);
int main()
{
int a,b;
scanf("%d",&a);
scanf("%d",&b);
//以下两句效果是一样的
(a<0) ? (void)0 :fun(a);
assert_param(b);
printf("你好");
return 0;
}
void fun(int n)
{
printf("%d\n",n);
}