使用下划线作为宏函数的参数

win*_*all 4 c macros c-preprocessor

C中,下划线作为宏参数的含义是什么?

#define FUNC(_) VALUE
Run Code Online (Sandbox Code Playgroud)

这是一个虚假的论点吗?适用于适用的用例的任何示例?

Iha*_*imi 6

_没有特殊的意义,我想他们用它,因为它看起来像如果该参数不存在.

_仅仅是一个有效的标识符,因此它采取这样的宏需要一个参数,但它一直在宏定义看上去好像没有参数.

#define FUNC(ignoredParameter) VALUE
Run Code Online (Sandbox Code Playgroud)

将是相同的exaclty.


jxh*_*jxh 5

在这种情况下,代码可以读作:

FUNC只需要一个参数,但它并不关心它是什么.无论传入什么,VALUE结果都是如此.

单个_是C中的有效标识符,因此适合用作宏参数名称.