宏的原理是直接替换,不保证优先级。因此,f(k+m)被替换为k+m*k+m,显然,和(k+m)*(k+m)不等价。整个式子被展开为a/=k+m*k+m/k+m*k+m其中,a=10,k=2,m=1,我们进行求值。原式右侧=>2(k)+2(m*k)+0(m/k)+2(m*k)+1(m)=>7原式=> a/=7 => a=10(a)/7 => a=1因此答案是1。这也是为什么书写宏一定要妥善处理括号。