abort
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);
}
相关阅读
junit 方法:assertEquals 和 assertTrue
assertEquals 和 assertTrue 区别 代码块 运行成功结果 assertEquals 运行失败后的错误提示 assertTrue 运行失败后的错误提示 总
PHP:ignore_user_abort()+set_time_limit(0)+sleep($in
最近由于项目需要定时更新远程数据库到本地,网上搜了搜,还真找到了。ignore_user_abort()函数搭配set_time_limit(0)和sleep($inter
GET http runtime.js net ERR_ABORTED 404 (Not Found
GET http runtime.js net ERR_ABORTED 404 (Not Found) 第一 把点去掉你应该就会发现 没错了第二 如果你一定要加点的话,看下图操
NVIDIA面试笔试题之一:assert.h是c标准库的一个头文件,该头文件的主要目的就是提供一个assert的宏定义。assert只是对所给的表达式
jedis : NoSuchMethodError: org.springframework.uti
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'connectionFactory' defined in c