#include <assert.h>//断言。assert是宏,而不是函数
1.部分代码:
void Mystrcpy(char *des,char *src)
{
assert(des!=NULL&&src!=NULL);//和上面的assert在一起
if(des==NULL||src==NULL)
{
return;//提前退出函数
}
while(*src!='\0')
{
*des++=*src++;
}
}
2.注意:
有的地方,assert不能代替条件过滤。
assert是用来避免显而易见的错误的,而不是处理异常的。错误和异常是不一样的,错误是不应该出现的,异常是不可避免的。c语言异常可以通过条件判断来处理,其它语言有各自的异常处理机制。
3.断言可以有两种形式
1.assert 表达式1
2.assert 表达式1:表达式2
其中表达式1应该总是一个布尔值,表达式2是断言失败时输出的失败消息的字符串。