Да, передача параметров регламентируется стандартом С - __cdecl Это слева на право. А вот за такой код int z = f(x += x, x *= x); я своих сотрудников увольняю.
У операторов и конструкций языка обычно есть вполне строгий приоритет. Какой приоритет у разных реализаций крестов "в среднем по палате" - не скажу, т. к. очень давно не касался их. Ссылка на спецификацию гуглится по разновидности C++ (есличо, их много).
Сначала будут сделаны преобразования, подсчеты, а потом уже будет вызвана функция. Сразу не понял вопроса. Даже не задумывался, но думаю будет слева на право идти по очереди.
Сначало выполнится x *= x, затем x += x Соответственно сам x будет изменен дважды, а в функцию попадут результаты последнего преобразования. то есть ответ 16 будет... Интересный вопрос))) Проверил на mingw и MS результат один и тот же. как по мне лучше так не делать...
Как я понял, стандарт не регламентирует последовательность вычисления аргументов The evaluations of the postfix expression and of the arguments are all unsequenced relative to one another.