目录

效果展示
有错误的时候会打印出错的文件名、出错的函数名和出错的行号

实现步骤
1.定义宏
// 这个宏是用来打印错误信息的,其中__FILE__、__FUNCTION__、__LINE__是编译器提供的宏,分别可以用来打印文件名、函数名、和行号
#define PRINTERRR(ERROR) ({printf("ERROR[%s-%s-%d]:%s\n",__FILE__,__FUNCTION__,__LINE__,ERROR);})
2.创建测试函数
下面创建了一个用来做除法的函数divided_by和main函数,其中divided_by函数中如果被除数为0则打印错误信息并终止程序
double divided_by(int a,int b){
if(b == 0){
PRINTERRR("divided by zero");
exit(0);
}else{
return a/b;
}
}
int main()
{
double value = divided_by(10,0);
printf("value is %f\n",value);
return 0;
}
代码展示
完整代码如下
#include<stdio.h>
#include<stdlib.h>
#define PRINTERRR(ERROR) ({printf("ERROR[%s-%s-%d]:%s\n",__FILE__,__FUNCTION__,__LINE__,ERROR);})
double divided_by(int a,int b){
if(b == 0){
PRINTERRR("divided by zero");
exit(0);
}else{
return a/b;
}
}
int main()
{
double value = divided_by(10,0);
printf("value is %f\n",value);
return 0;
}
网友评论