#define DOUBLE(r) r*r结果如何计算出来的?
#define DOUBLE(r) r*r
main()
{
int x=1,y=2,t;
t=DOUBLE(x+y);
printf( "%d ",t);
}
运行结果是5,怎么计算出来的啊,我觉得应该是9啊,X+Y=3,3*3=9.
[解决办法]
DOUBLE(x+y) => x+y*x+y
要这样定义:
#define DOUBLE(r) (r)*(r)
[解决办法]
DOUBLE(x+y) = 1+2*1+2 = 5
[解决办法]
展开之后是
t=1+2*1+2;