关于宏定义的一路题
关于宏定义的一道题
# include "stdio.h"
# define MCRA(m) 2*m
# define MCRB(n,m) 2*MCRA(n)+m
int main (void)
{
int i=2;
int j=3;printf ("%d\n",( j , MCRA ( i ) ) );
return 0;
}
输出结果为4,详细计算过程。
------解决方案--------------------
printf()的后面是一个逗号表达式,逗号表达式取的是最右边的值,所以这个结果就是MCRA ( i )
的结果,你知道为什么为4了吧。。
# include "stdio.h"
# define MCRA(m) 2*m
# define MCRB(n,m) 2*MCRA(n)+m
int main (void)
{
int i=2;
int j=3;printf ("%d\n",( j , MCRA ( i ) ) );
return 0;
}
输出结果为4,详细计算过程。
------解决方案--------------------
printf()的后面是一个逗号表达式,逗号表达式取的是最右边的值,所以这个结果就是MCRA ( i )
的结果,你知道为什么为4了吧。。