<分区>
有什么方法可以定义可以有一个或零个参数的宏吗?
我需要在这个例子中使用一些东西:
#define MY_RETURN(ret) return ret;
void foo(){
MY_RETURN();
}
int foo_integer(){
MY_RETURN(1);
}
我无法为此找到解决方案。
<分区>
有什么方法可以定义可以有一个或零个参数的宏吗?
我需要在这个例子中使用一些东西:
#define MY_RETURN(ret) return ret;
void foo(){
MY_RETURN();
}
int foo_integer(){
MY_RETURN(1);
}
我无法为此找到解决方案。
最佳答案
在 C99 及更高版本中,可以使用可变参数宏。
C11 (n1570), § 6.10 Preprocessing directives
# define identifier lparen identifier-list , ... ) replacement-list new-line
您的宏可能类似于:
#define MY_RETURN(...) return __VA_ARGS__
如果你需要计算参数,你可以检查here例如。
关于c - 可以有零个或一个参数的通用宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15249968/