2017手机壳品牌排行榜:找人帮我分析这个题

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/03 05:52:15
#include<stdio.h>
#define PI 3.1415
#define FU(K) K+PI
#define PRINT(s) printf("%d\n",(int)(s))
void main()
{
int x=3;
PRINT(x*FU(1));
getch();
}
这个题的结果为什么是6,
我把‘*’换成‘/’也是6,换成‘-’是5,换成‘+’是7,这是为什么呢?

这是由于宏替换FU(K)造成的,编译程序遇到宏就直接用它的定义进行替换,你的程序pinrtf替换后,即:pinrtf("%d\n",(int)(x*K+PI));计算结果是正确的。

x*FU(1)衩换成了x*K+PI