随堂练习题-3
实现一个打印LOG的函数,需要输出所在函数及行号等信息
注:
- 宏__FILE__以字符串形式返回所在文件名称
- 宏__func__以字符串形式返回所在函数名称
- 宏__LINE__以整数形式返回代码行号
#include <stdio.h>
#include <math.h>
#ifdef DEBUG
#define log(frm,args...)\
{\
printf("[%s,%s,%d] ",__FILE__,__func__,__LINE__);\
printf(frm,##args);\ //##代表链接 即便是args是空也没事 frm后面不能加入\n 必须在下面调用宏里面的参数加入\n可以 这里加入没有引号
printf("\n");\
}
#else
#define log(frm,args...)
#endif
#define contact(a,b) a##b
int main()
{
int a=123;
int b=456;
int ab;
contact(a,b)=112233;
log("%d",a);
log("%d",ab);
log("hello world");
log("%s","hello world");
return 0;
}
运行结果:
- -DDEBUG 定义一个DEBUG宏 或者暴力的办法就是在程序里面直接定义一个DEBUG 条件式编译