我已经用 C 编程了很长一段时间了。所以我决定学习一些高级 CI 听说过 gcc 编译器扩展。下面我看到了 MAX() 的代码,我到目前为止已经实现如下
#define MAX(x,y) ((x) > (y)? (x): (y))
这是我找到的新定义。不幸的是,我什至无法理解以下代码的作用?为什么我会按照下面而不是上面那样做?
#define MAX(a,b) \
({ \
typeof (a) _a = (a); \
typeof (b) _b = (b); \
_a > _b ? _a : _b; })