A-A+
以下程序的输出结果是【 】。 define MCRA(m) 2*m define MCRB(
问题详情
以下程序的输出结果是【 】。 define MCRA(m) 2*m define MCRB(n,m) 2*MCRA(n)+m main() { int i=2,j=3; printf("%dn",MCRB(j,MCRA(i))); }
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:16
带参数宏定义首先将程序中宏替换掉,先把“MCRA(i)”替换成“2*i”,然后把“MCRA(j,2,*i)”替换成“2*2*j+2*i”,经计算该表达式的值为16,所以最后输出为16。