Following is a Simple C program . Source Code:
#include<stdio.h>
#define PRODUCT(x) ((x)*(x))
int main()
{
int i = 3, j, k , l;
j = PRODUCT(i+1);
k = PRODUCT(i++);
l = PRODUCT(++i);
printf("\n%d %d %d %d",i , j, k , l);
return 0;
}
Equivalent Processed [after preprocessing]
OUTPUT :
7 16 12 49
Question : Why l is printing 49 , isn't it 42 ?