2个回答
展开全部
就是选D嘛
编译器会自动将M(a+b,b+c,c+a);解释为 a+b+b+c+c+a 即1+2+2+3+3+1=12
编译器会自动将M(a+b,b+c,c+a);解释为 a+b+b+c+c+a 即1+2+2+3+3+1=12
追问
为什么会这样?如果我想要按照宏的初始目的那样输出应该怎么写
追答
就像另一个同学给你回答的一样 要向下面这样写
如果想要按照宏的初始目的,在定义宏的时候,给每个变量和表达式都要加上括号
这样定义宏:#define M(x,y,z) ((x)*(y)+(z))
你要记住 编译时 宏定义的内容会被原版的带入到主函数中
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询