#include
#define F(x) 2.84+x
#define w(y) printf("%d",(int)(y))
#define P(y) w(y)
main()
{
int x=2;
P(F(5)*x);
}
为什么结果是12 呢
把F(x)替代一下就知道了
P(F(5) * x),宏替代后就是
P(2.84+5 * x),再展开就是
w(2.84+5 * x),再展开就是
printf("%d",(int)(2.84+5 * x));
当x=2时,2.84+5 * x = 12.84,由于进行了(int)强制转换,所以是12