[求助]预定义后的计算?
#define f(x) (x*x)
main()
{
int i , j;
i=f(8)/f(4);
j=f(4+4)/f(2+2);
printf("%d %d",i, j);
}
答案是4 3,但是我不明白那个j值得运算过程,.望指教~~
#define f(x) (x*x)
main()
{
int i , j;
i=f(8)/f(4);
j=f(4+4)/f(2+2);
printf("%d %d",i, j);
}
答案是4 3,但是我不明白那个j值得运算过程,.望指教~~
j=(4+4*4+4)/(2+2*2+2)
=24/8
=3
#define f(x) (x*x)
main()
{
int i , j;
i=f(8)/f(4);
j=f((4+4))/f((2+2));
printf("%d %d",i, j);
}
答案是4 3,但是我不明白那个j值得运算过程,.望指教~~
define就是直接替换,如果你要实现的是(4+4)*(4+4)就按红色那里再加个括号
你应该写成 #define f(x) ((x)*(x)) define只是简单的替换,所以在执行f(4+4)/f(2+2)时 就是x*x=4+4*4+4而不是(4+4)*(4+4)