有一个C++问题求大神帮解释

#include<iostream>#definemul(x,y)x*yusingnamespacestd;inlineintMul(intx,inty){returnx... #include <iostream>
#define mul(x,y) x*y
using namespace std;
inline int Mul(int x,int y)
{
return x*y;
}
int main()
{
int a(1),b(2);
int result1=mul(a+2,b-3);
int result2=Mul(a+2,b-3);
cout<<result1<<result2;
return 0;
}
运行结果中为什么第一个数字不是-3,而是2?
展开
 我来答
百度网友5298263
2017-01-06 · TA获得超过967个赞
知道小有建树答主
回答量:1005
采纳率:94%
帮助的人:525万
展开全部
mul是个宏,编译展开的时候就是
int result1 = a+2 * b-3 ;
所以是2
所以不要把宏当函数使用 宏其实陷阱很多
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式