输出怎么是28的?
#define f(x) x*x
main()
{int i;
i=f(4+4)/f(2+2);
printf("%d",i);
}
输出怎么是28的?
[解决办法]
i=f(4+4)/f(2+2);
等价于
i=4+4*4+4/2+2*2+2
所以宏定义要加很多的括号: #define f(x) ((x)*(x))
发布时间: 2012-09-20 09:36:50 作者: rapoo
输出怎么是28的?
#define f(x) x*x
main()
{int i;
i=f(4+4)/f(2+2);
printf("%d",i);
}
输出怎么是28的?
[解决办法]
i=f(4+4)/f(2+2);
等价于
i=4+4*4+4/2+2*2+2
所以宏定义要加很多的括号: #define f(x) ((x)*(x))