如何解释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
,但我认为是错误的
为什么?谁能解释一下?
这是因为宏替换完全是文本的。如果您需要括号以实现正确的算术运算,它们必须位于替换文本中。
#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
,但我认为是错误的
为什么?谁能解释一下?
这是因为宏替换完全是文本的。如果您需要括号以实现正确的算术运算,它们必须位于替换文本中。