c语言中的#define问题.
帮我看看下面这个程序,我就是不知道#define的问题:
#define M(x,y,z) x*y+z
main()
{
int a=1,b=2,c=3;
printf("%d\n",M(a+b,b+c,c+d));
}
上面那段程序的运行结果是什么啊?什么算的啊?
参考答案:#define M(x,y,z) x*y+z 展开此宏时不能自行加括号,直接原形展开即可
由int a=1,b=2,c=3;
得M(a+b,b+c,c+a)=a+b*b+c+c+d=1+2*2+3+3+1=12