There is no specified order, since the multiplication operator is not a sequence point. Sequence points include a comma operator, the end of a complete expression, and function calls. Thus, the order of evaluation (a)and (b)implementation dependent compiler. Therefore, you should not try to do something in (a)that will have a side effect that you want to see in (b)to create the correct result.
For instance:
int a=5;
int b = (a++) * (a++);
C, .