Sign-up....

有个简单的问题,这大学真是白读了涅

#define F(x) x - 2

#define D(x) x*F(x)

printf("%d,%d", D(3), D(D(3))) ;

答案为什么是 7,-13 , 我忘了怎么做了,高手给个解题方法吧。

[116 byte] By [msdn] at [2007-8-14 20:05:22]
# 1 Re: 有个简单的问题,这大学真是白读了涅

展开后为:

printf("%d,%d", 3*3 - 2, 3*3 - 2*3*3 - 2 - 2) ;

keiy at 2005-6-19 20:04:13 >
# 2 Re: 有个简单的问题,这大学真是白读了涅

D(3)=3*3-2=7

D(D(3)) =D(3*3-2)=3*3-2*3*3-2-2=-13

guyanhun at 2005-6-19 20:06:01 >
# 3 Re: 有个简单的问题,这大学真是白读了涅

#define .........

zharP at 2005-6-19 20:07:39 >
# 4 Re: 有个简单的问题,这大学真是白读了涅

D(D(3))是这样展开的:

1、D(3)*F(D(3))-2

2、3*F(3)*D(3)-2

3、3*3-2*3*F(3)-2

4、9-2*3*3-2-2=-13

wolfzxq at 2005-6-19 20:10:24 >
# 5 Re: 有个简单的问题,这大学真是白读了涅

D(D(3))是这样展开的:

1、D(3)*F(D(3))

2、3*F(3)*D(3)-2

3、3*3-2*3*F(3)-2

4、9-2*3*3-2-2=-13

wolfzxq at 2005-6-19 20:13:21 >
# 6 Re: 有个简单的问题,这大学真是白读了涅

直接替换

OpenHero at 2005-6-19 20:34:42 >
# 7 Re: 有个简单的问题,这大学真是白读了涅

对于类函数宏,要永远记住宏是不进行运算的,只是替换!

megaboy at 2005-6-19 21:28:02 >
# 8 Re: 有个简单的问题,这大学真是白读了涅

宏定义都是在程序中直接替换。

popcom at 2005-6-19 21:35:42 >

C/C++

All Classified