我已经看到了以下片段:
#define kthread_create(threadfn, data, namefmt, arg...) \
kthread_create_on_node(threadfn, data, -1, namefmt, ##arg)
##
代表什么? ##
出现在宏之外时,它是什么意思? 最佳答案
与其他答案相反,这实际上是GCC扩展。直接粘贴变量args时,如果没有传递额外的args,则会出现问题。因此,当GCC与##
或varargs变量(由__VA_ARGS__
声明)一起使用时,它会生成argname...
。如果它包含一个值,则粘贴;否则,请删除前一个逗号。
该扩展的文档是here:
关于c - C中的##是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12053275/