可变参数宏

可变参数宏

Content #

在GNU C语言中宏函数允许使用可变参数类型,例如:

#define pr_debug(fmt, arg...) \
printk(fmt, ##arg)

在这段代码中,当可变参数arg被忽略或为空时,printk函数中的##操作将迫使预处理器去掉它前面的那个逗号。如果在调用宏函数时,确实提供了若干个可变参数,那么GNU C会把这些可变参数放到逗号后面,使其能够正常工作。

From #

一个64位操作系统的设计与实现