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

How to explain define MUX(a,b) a*b?

#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,但我认为是错误的

为什么?谁能解释一下?

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