因为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吗