问题标题:
路过的C大神来看看这道题.#include#defineM(x,y,z)x*y+zintmain(){inta=1,b=2,c=3;printf("%dn",M(a+b,b+c,c+a));return0;}这个程序运行的结果为什么是12.最好能把流程写一下
问题描述:

路过的C大神来看看这道题.

#include

#defineM(x,y,z)x*y+z

intmain()

{

inta=1,b=2,c=3;

printf("%dn",M(a+b,b+c,c+a));

return0;

}

这个程序运行的结果为什么是12.最好能把流程写一下

时锐回答:
  宏替换后是   a+b*b+c+c+a   即   1+2*2+3+3+1=12   应该这样定义宏   #defineM(x,y,z)(x)*(y)+(z),那么替换后是   (1+2)*(2+3)+(3+1)=19
查看更多
其它推荐
热门其它推荐