不对吧,应该是D=(A+B)-(A+B)*C
C语言里的define可以宏定义函数,但是它和实际的函数又不一样,它并不是返回一个结果,只是返回一个式子,直接把原来的宏定义替换掉
这里SUB(a) 被定义为(a)-(a)
所以在语句里的sub(a+b)会直接被替换为(a+b)-(a+b)
d=sub(a+b)*c替换掉的结果就是d=(a+b)-(a+b)*c
宏定义的函数并没有把(a+b)-(a+b)的值计算出来以后再返回
直接完完全全的替换就行了,#define的东西直接替换,不用变照搬写进去就知道了D=(A+B)-(A+B)*C
(2+3)-(2+3)*5=-20
预处理命令只是把()里的东西直接换算,没有括号,因此运算时先算乘法再算加法了