求解释C语言以下下题目

这里问什么会是D=(A+B)-(A-B)*C?
2025-02-27 21:03:51
推荐回答(3个)
回答1:

不对吧,应该是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)的值计算出来以后再返回

回答2:

直接完完全全的替换就行了,#define的东西直接替换,不用变照搬写进去就知道了D=(A+B)-(A+B)*C

回答3:

(2+3)-(2+3)*5=-20
预处理命令只是把()里的东西直接换算,没有括号,因此运算时先算乘法再算加法了