【发布时间】:2014-02-17 15:54:41
【问题描述】:
为什么这个宏给出的输出是 144,而不是 121?
#include<iostream>
#define SQR(x) x*x
int main()
{
int p=10;
std::cout<<SQR(++p);
}
【问题讨论】:
-
如果你想学习 C++,为什么不使用内联函数呢?如您所见,宏可能会导致评估问题...
-
见 Bjarne Stroustrups FAQ。它解释了使用宏有什么问题,并给出了您遇到问题的完全相同的示例。