This is a simple program to find the square of a number using a macro name SQUARE with an argument x. I am comfortable with the output of i,j but the output of other variables was unexpected as k,m are prime numbers also the value of l,n do not match the output which I predicted. Please help for the same. Thank you in advance.
#include <stdio.h>
#define SQUARE(x) (x * x)
void main() {
int a = 3;
int i, j, k, l, m, n;
i = SQUARE(a);
j = SQUARE(a++);
k = SQUARE(a + 1);
l = SQUARE(++a);
m = SQUARE(a + 2);
n = SQUARE(a++);
printf("\n i= %d", i);
printf("\n j= %d", j);
printf("\n k= %d", k);
printf("\n l= %d", l);
printf("\n m= %d", m);
printf("\n n= %d", n);
}