Explanation:
The macro MAN(x, y) ((x)>(y)) ? (x):(y);
returns the biggest number of given two numbers.
Step 1: int i=10, j=5, k=0;
The variable i
, j
, k
are declared as an integer type and initialized to value 10
, 5
, 0
respectively.
Step 2: k = MAN(++i, j++);
becomes,
=> k = ((++i)>(j++)) ? (++i):(j++);
=> k = ((11)>(5)) ? (12):(6);
=> k = 12
Step 3: printf("%d, %d, %d\n", i, j, k);
It prints the variable i, j, k
.
In the above macro step 2
the variable i
value is incremented by 2
and variable j
value is incremented by 1
.
Hence the output of the program is 12, 6, 12