#define SQ(x,y) (x)*(x)+(y)*(y)
int main()
{
int s;
s = SQ(1, 2) * SQ(1, 2);
printf("%d", s);
}
}
结果为9,为什么为9?
s=SQ(1,2)SQ(1,2)展开不就是SQ(11+22)SQ(11+22)吗,结果为25,但是编译器输出的值为9,为什么呢
#define SQ(x,y) (x)*(x)+(y)*(y)
int main()
{
int s;
s = SQ(1, 2) * SQ(1, 2);
printf("%d", s);
}
}
结果为9,为什么为9?
s=SQ(1,2)SQ(1,2)展开不就是SQ(11+22)SQ(11+22)吗,结果为25,但是编译器输出的值为9,为什么呢
展开后是:
(x)*(x)+(y)*(y)*(x)*(x)+(y)*(y)=(1)*(1)+(2)*(2)*(1)*(1)+(2)*(2)=1+4+4=9