在Visual Studio中是否有一个等价的语句表达式?

时间:2011-11-15 20:55:00

标签: c visual-studio gcc

GCC具有一个表达式表达式功能,允许将宏定义为:

#define maxint(a,b) \
   ({int _a = (a), _b = (b); _a > _b ? _a : _b; })

这在Visual Studio中是非法的。

微软Visual Studio中是否有相同的功能? (我知道,我最好使用GCC。但我只是好奇)。

或者,我们是否只需要使用内联函数?

2 个答案:

答案 0 :(得分:7)

MS编译器中没有与此非标准GCC语言扩展名相同的内容。

答案 1 :(得分:0)

如果您使用的是C ++,我相信可以使用lambda函数:

#define maxint(a,b) \
   ([=] () {int _a = (a), _b = (b); return _a > _b ? _a : _b; }())