有人能解释一下这是如何工作的吗?
#define maxMacro(a,b) ( (a) > (b) ) ? (a) : (b)
inline int maxInline(int a, int b)
{
return a > b ? a : b;
}
int main()
{
int i = 1; j = 2, k = 0;
k = maxMacro(i,j++); // now i = 1, j = 4 and k = 3, Why ?? Where is it incremented ?
//reset values
i = 1; j = 2, k = 0;
k = maxInline(i,j++); // now i = 1, j = 3, and k = 2, Why ??
return 0;
}
所以,我想知道在检查条件、返回或调用时,j的值到底是在哪里增加的?
- a. 使用宏
- b. 使用内联方法
更新: 谢谢大家,现在我明白了。但只是出于好奇,为什么有人会在调用方法时进行j++,而不是在调用方法后增加j,这样会更少引起混淆。我在某个地方看到了这段代码,所以问一下!