#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);
}
描述不正确
追答哪里不正确?
追问你知道什么叫宏吗?!
什么叫替换吗?!
你知道预编译是怎么处理宏的吗?!
你以为管理员随便采纳一个错误答案,你可以去运行试试。
宏就是直接替换,替换后再编译,跟你解释得很清楚了,是你基础知识不够好,多看看书。
我刚学过,我很清楚啊
你算得什么,不是本题吧
我知道,括号里运算带的值是上面给定的值,而不是运算过程中带的值吧
追答你是说T(a++,a*++b,a+b+c)里面的值吗?
a++的a应该是3;++b应该是4 ,a*++b应该是16 ,a+b+c应该是5+5+5 我也不确定 你最好自己在vc上搞一哈
不对,x=a++,a++应该为1,a为2,a*++b为4,a+b+c为9
追答在s1中 b的值已经赋予给a了呀
就算是你说的这样,++b的值还是为4呀,2*4=8
我们算得是s2