Problem with Macros

Neil Butterworth, Mark and Pavel are right. SQUARE(++y) expands to ++y * ++y, which increments twice the value of y. Another problem you could encounter: SQUARE(a + b) expands to a + b * a + b which is not (a+b)*(a+b) but a + (b * a) + b. You should take care of adding … Read more