【发布时间】:2019-03-14 18:11:29
【问题描述】:
#include<bits/stdc++.h>
#define MAX(A,B) (A>B)?A:B
using namespace std;
int main()
{
int i= 1, j=2;
int val1 = max(++i, ++j);
cout<<"i : "<<i<<" j : "<<j<<endl;
printf("Val2 : %d\n", val1);
int k = 1, l = 2;
int val2 = MAX(++k, ++l);
cout << "k : " << k << " l : " << l << endl;
printf("Val2 : %d\n", val2);
return 0;
}
以上代码的输出:
i : 2 j : 3
Val2 : 3
k : 2 l : 4
Val2 : 4
但我认为应该是:
i : 2 j : 3
Val2 : 3
k : 2 l : 3
Val2 : 3
谁能简单说明一下?
【问题讨论】:
-
好的,这不能是java和python和c++
-
请使用适当的标签来区分您使用的语言。 Python 和 Java 与此无关。
-
提示:手动展开MAX宏。
-
尝试手动扩展宏,然后想想扩展后的代码做了什么。
标签: c++