【发布时间】:2018-10-12 15:30:48
【问题描述】:
我需要一个宏,它只调用作为参数传递给该宏的函数。该函数是无参数的void类型。
例如,如果我有以下功能:
void function(void) {
//doSomething
}
我需要一个宏,APPLY_FUNCTION,它使用 function 参数调用并简单地调用该函数:
APPLY_FUNCTION(function);
我尝试定义如下宏:
#define APPLY_FUNCTION(function) (function)
但它不起作用,当我尝试调用宏时,我收到“没有效果的语句”错误。
问题是我应该如何定义那个宏?
【问题讨论】:
-
拥有这个宏有什么意义?为什么不直接调用函数呢?
-
这可能是XY problem。事实上,这样的宏完全没有用。但是“应用”敲响了警钟,您是否正在尝试实现Apply HOF?这不适用于宏。