see code below . The output is 49 ( 7*7 = 49) . How this could happen? can somebody explain in details.
#include <stdio.h>
#define SQUARE(X) X * X
#define PR(X) printf("The result is %d.\n", X)
int main(void) {
int x = 5;
printf("x = %d\n", x);
PR(SQUARE(++x)); // print out 49 but x is 5
return 0;
}