标签: 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,但这是错误的。
MUX(10-5,10+5) = (10-5)*(10+5) = 75
为什么?谁能解释一下?
答案 0 :(得分:1)
这是因为宏替换完全是文本性的。如果您需要括号以进行正确的算术运算,则它们必须位于替换文本中。