请教:下题的结果为什么是3,28??
#define MIN(x,y) (x)>(y)?(x):(y)
#define T(x,y,r) x*r*y/4
main()
{
int a=1,b=3,c=5,s1,s2;
s1=MIN(a=b,b-a);
s2=T(a++,a*++b,a+b+c);
printf("%d,%d",s1,s2);
}
按本人的推论:
MIN宏展开后:s1=(a=b)>(b-a)?(a=b):(b-a)
即: (a=3)>(3-1)>(a=3):(3-1)
所以:s1=a=3
T宏展开后:s2=a++*a+b+c*a*++b/4
即: 3*4+4+5*4*3/4
得: 31
不知错在哪里,请指教!