void abort(void);终止程序执行,直接从调用的地方跳出。
头文件#include <stdlib.h>
#include <stdio.h>
#include <stdlib.h>
int main ()
{
FILE *fp;
fp = fopen( "abort.txt","r" );//文件并不存在
if(fp == NULL)
abort();
fclose(fp);//程序执行不到这里
return(0);
}
assert是宏,不是函数。定义在<assert.h>中
void assert(int expression);
先计算expression的值,如果为假,调用abort()终止程序。
#include <stdio.h>
#include <assert.h>
int main ()
{
FILE *fp;
fp = fopen( "abort.txt","r" );//文件并不存在
assert(fp != NULL);
fclose(fp);//程序执行不到这里
return(0);
}
频繁调用assert会影响程序性能,一般调试所用。
调试完成后,可以在头文件<assert.h>前加入#define NDEBUG,就可以忽略assert。
#include <stdio.h>
#define NDEBUG
#include <assert.h>
int main ()
{
FILE *fp;
fp = fopen( "abort.txt","r" );//文件并不存在
assert(fp != NULL);
fclose(fp);
return(0);
}