assert( )函数的作用跟if语句很像,都是对条件进行判断。不同的是,if语句判断为'真'后,一般会有跟随的操作指令,判断为'假'则跳过跟随的操作。而assert函数在判断为'真'后并不会有任何操作,反而是在判断为'假'后,会终止程序,并给出一条错误信息。调用asset函数需要包含头文件<assert.h>。
下面是在myStrcpy函数中用assert来代替if。
char* myStrcpy2(char *des, char *soc)
{
assert(des !=NULL && soc != NULL);
char *bak=des;
while(*soc != '\0'){
*des++ = *soc++;
}
*des='\0';
return bak;
}
配和下面这段主函数
int main(){
char str[128]={'\0'};
char *p2=NULL;
myStrcpy2(str,p2);
puts(str);
return 0;
}
运行出来就会出现错误信息:
File: 7.7_demo_assert.c, Line 24
Expression: des !=NULL && soc != NULL