#define AD(x,y) (x+y)
int main()
{
int x1=5,y1=2,z1;
int x2=5,y2=2,z2;
z1 = AD(x1,++y1);
z2 = (x2+++y2) ;
printf("%d %d %d
",x1,y1,z1);
printf("%d %d %d
",x2,y2,z2);
}
why the output is different? the first case is : 5 3 8 and the second is : 6 2 7
question from:https://stackoverflow.com/questions/65907318/understanding-a-c-preprocessor-macros-output-vs-a-line-code