1可变参数宏
#define DEBUG(args) (printf("DEBUG: "), printf args)
if(n != 0) DEBUG(("n is %d/n", n));
上面的定义,明显的缺陷是调用者必须记住使用一对额外的括弧。
在 GNU C 中,宏可以接受可变数目的参数,就象函数一样,例如:
#define pr_debug(fmt,arg...) /
printk(KERN_DEBUG fmt,##arg)
2
1可变参数宏
#define DEBUG(args) (printf("DEBUG: "), printf args)
if(n != 0) DEBUG(("n is %d/n", n));
上面的定义,明显的缺陷是调用者必须记住使用一对额外的括弧。
在 GNU C 中,宏可以接受可变数目的参数,就象函数一样,例如:
#define pr_debug(fmt,arg...) /
printk(KERN_DEBUG fmt,##arg)
2