This question already has answers here:
Closed 5 years ago.
How to define macro function which support no input parameter and support also input parametr in the same time
(4个答案)
Overload C macros
(2个答案)
有没有办法定义一个或零个参数的宏?
我需要在这个例子中用到一些东西:
#define MY_RETURN(ret) return ret;

void foo(){
    MY_RETURN();
}

int foo_integer(){
    MY_RETURN(1);
}

我找不到解决办法。

最佳答案

在C99及更高版本中,可以使用可变宏。
C11(n1570),§6.10预处理指令
# define identifier lparen identifier-list , ... ) replacement-list new-line
宏可能看起来像:

#define MY_RETURN(...) return __VA_ARGS__

如果需要计算参数,可以检查here

10-07 19:59
查看更多