
控制log输出的方法
1 2 3 4
|
#define pr_debug(x,...) printk(x, ##__VA_ARGS__) #else #define pr_debug(x,...) do {} while(0)
|
通过C语言的宏定义控制log的输出,使用VA_ARGS获取可变参数。
1
|
#define pr_debug(x,...) printk(x, __VA_ARGS__)
|
使用如下方式调用,则会产生编译错误。
1
|
pr_debug("hello world");
|
产生编译错误的原因是VA_ARGS宏不支持可变参数个数为0的情况,C99规范并没有定义其他的宏来解决这个问题,但GCC对此作了扩展,在VA_ARGS前面加两个#。
1
|
#define pr_debug(x,...) printk(x, ##__VA_ARGS__)
|
近期评论