Hi need to under stand execution steps for below program.
#include<stdio.h>
#define SQUARE(x) (x)*(x)
void main()
{
int i = 5;
printf("%d\n", SQUARE(++i));
}
As i have understanding like macro expanded like (++i)*(++i)
and as result (7)*(6)
= 42 but the output is 49
which i don't understand why?