#define疑惑......为什么会出现这种情况

use*_*260 1 c++ syntax macros

我已经定义了以下最大宏

#define max(a,b)(a>b?a:b);
Run Code Online (Sandbox Code Playgroud)

在main()里面,我正在做以下事情

int t,a,b,c,d;

t=max(a,b)+max(c,d);
Run Code Online (Sandbox Code Playgroud)

但是输出并不像预期的那样.t只显示a和b中的最大值.可能是什么问题呢?

Mar*_*oun 5

这就像写作:

t = (a>b?a:b);+(a>b?a:b);
Run Code Online (Sandbox Code Playgroud)

(检查预处理器输出)

;定义中删除.