Difference between calling convention and order of evaluation of function arguments in C? The following code yields different outputs on different compilers;