159题为什么是7不是70啊

img


t=max(a+b,c+d)*10
max(a+b,c+d)展开后来等于7,t为什么等于7不是70呢

因为define本质是文本替换,不是括号(),他只是替换文本并不是先运算。

宏定义替换后再做运算的。
t = (a+b) > (b+c) ? (a+b) : (c+d) * 10;
替换后表达式实际上就变成了这样,(a+b) > (b+c) 成立,三目运算符的结果就是 (a+b) ,等于 7

我怎么感觉你想反过来问
define宏定义 是文本替换
t=(a+b) > (c+d) ? (a+b) : (c+d) * 10;
a+b=7
b+c=6
7>6
所以不是结果是:之前的 a+b
不就是7吗