设有宏定义:&define MUL(x,y)x*y则宏调用MUL(2+3,5)的结果为17? 我来答 可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。 宏定义 &define mul 搜索资料 2个回答 #热议# 海关有哪些禁运商品?查到后怎么办? wooden954 推荐于2018-03-10 · TA获得超过1万个赞 知道大有可为答主 回答量:6135 采纳率:93% 帮助的人:820万 我也去答题访问个人页 关注 展开全部 是的。造成这种结果的原因,是由于宏定义本身的特性造成的:define仅仅是字符替换,因此在将NUL(2+3,5)时,x是2+3,y是5,直接将表达式x*y替换字符后,则变成了2+3*5,其计算结果在乘法优先于加法的作用下会得到17这个数值。为了避免这种情况,有两种办法解决定义更安全的宏定义,即使用括号将表达式括起来,避免了优先级在替换后变化。define MUL(x,y) (x)*(y)将宏定义改变为函数int MUL(int x,int y){ return(x*y); } 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 却欣笑0GQ52a 2014-06-07 · 超过16用户采纳过TA的回答 知道答主 回答量:37 采纳率:0% 帮助的人:28.1万 我也去答题访问个人页 关注 展开全部 是的MUL(2+3,5)=2+3*5=17MUL((2+3),5)=(2+3)*5=30#define只是字符替换而已,#define MUL(x,y) x*y只是在预编译时将字符MUL(x,y)替换为x*y,所以MUL(2+3,5)就替换成了2+3*5 本回答被提问者采纳 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询 其他类似问题 2016-05-19 这道题选什么,为什么啊 若有以下宏定义, #define MOD(x,y) x%y 则执行以下程 3 2018-03-20 设有宏定义#define MAX(x,y) (x)>(y)? (x):(y),则F=4*MAX(2,3)的值为()。 46 2019-10-09 设有宏定义:&define MUL(x,y)x*y则宏调用MUL(2+3,5)的结果为17? 5 2013-06-22 若宏定义为:#define y(x) 2+x,则表达式a=3*y(3)的值为 3 更多类似问题 > 为你推荐: