1.概要
需求:常用的输出log的地方 一般要输出:文件、函数、行数、异常信息等
这种需求封装函数不行:
1.因为 行数 必须记录当时的行数,如过写在函数里就变成函数的行数了
2.return 返回的值还必须在主函数中处理,代码也很啰嗦
能不能用宏来解决这个问题呢,因为宏的特点就是代码的替换,且可以让代码看的简介所以做了如下试验
试验结果:可以这中方法用来解决log冗余代码的问题很有用
2.代码
#include <stdio.h>
/*
需求:常用的输出log的地方 一般要输出:文件、函数、行数、异常信息等
这种需求封装函数不行:
1.因为 行数 必须记录当时的行数,如过写在函数里就变成函数的行数了
2.return 返回的值还必须在主函数中处理,代码也很啰嗦
能不能用宏来解决这个问题呢,因为宏的特点就是代码的替换,且可以让代码看的简介所以做了如下试验
试验结果:可以这中方法用来解决log冗余代码的问题很有用
*/
#define fun(a,b) a+b;
#define fun2(err) if (err > 0) {\
printf("%s,%d\n", __FILE__, __func__);\
return err;\
}
int main() {
//简单应用
int a = fun(5, 6);
printf("%d\n",a);
int err = 5;
fun2(err);
/* 把这段变成宏
if (err > 0) {
printf("%s,%d\n", __FILE__, __func__);
return err;
}*/
printf("hello word:");
}
3.运行结果
11
C:\Users\jxie33\source\repos\ConsoleApplication4\Project2\Main.c,-1464624108