修正前 #define func(x) x*x-2の場合
func(a)の置き換え結果:
a*a-2
func(a+2)の置き換え結果:
a+2*a+2-2
func(a)*4の置き換え結果:
a*a-2*4
修正後 #define func(x) ((x)*(x) - 2) の場合
func(a)の置き換え結果:
((a)*(a) - 2)
func(a+2)の置き換え結果:
((a + 2)*(a + 2) - 2)
func(a)*4の置き換え結果:
((a)*(a) - 2) * 4