#define SUB(a) (a)-(a)   main()   { int a=2,b=3,c=5,d;

d=SUB(a+b)*c;printf("%d\n",d);}求解题的过程和答案... d=SUB(a+b)*c;
  printf("%d\n",d);
  }
求解题的过程和答案
展开
 我来答
百度网友1f4cf6dbb
2011-10-29 · TA获得超过387个赞
知道小有建树答主
回答量:553
采纳率:100%
帮助的人:264万
展开全部
d=SUB(A+B)*C //a=a+b
d=(a+b)-(a+b)*c //没有括号把前面括起来,因为这是define定义的宏的特点
d=5-5*5=-20
OGRobot
2011-10-29 · TA获得超过1516个赞
知道小有建树答主
回答量:335
采纳率:100%
帮助的人:609万
展开全部
最关键的是你的宏定义:
#define SUB(a) (a)-(a)

在编译时这一句:
d=SUB(a+b)*c;
实际被展开成了这样:
d=(a+b)-(a+b)*c;

如果你想要得到你预期的结果,那你需要修改宏,把结果也用括号包起来:
#define SUB(a) ((a)-(a))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式