如何解释定义 MUX(a,b) a*b?

时间:2021-05-27 11:13:45

标签: c macros c-preprocessor

#define MUX(a,b) a*b

MUX(10-5,10+5) = 10+5*10-5 = 10+50-5 = 55

我认为MUX(10-5,10+5) = (10-5)*(10+5) = 75,但这是错误的。

为什么?谁能解释一下?

1 个答案:

答案 0 :(得分:1)

这是因为宏替换完全是文本性的。如果您需要括号以进行正确的算术运算,则它们必须位于替换文本中。