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

时间:2015-04-01 20:33:41

标签: c macros c-preprocessor

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

#define FUNC(_) VALUE

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

2 个答案:

答案 0 :(得分:6)

_没有特殊含义,我想他们使用它是因为它看起来好像参数不存在。

_只是一个有效的标识符,因此它需要一个参数,但它保持宏定义看起来好像没有参数。

#define FUNC(ignoredParameter) VALUE

将是相同的。

答案 1 :(得分:5)

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

  

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

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