Можно создать дубликат:
Could anyone explain these undefined behaviors (i = i++ + ++i , i = i++, etc…)Неоднозначность в ответ на C
Я слышал эту функцию выполняет PRINTF справа налево и печатает слева направо. По этой конвенции следующая программа должна дать 7,6,5. Но это дает 7,7,7 на моем компиляторе Linux gcc. Является ли он зависимым от компилятора?
int i=5;
printf("%d %d %d\n",++i,++i,i);
Кроме того, мы можем использовать Cdecl/паскаль ключевое слово, чтобы изменить порядок исполнения Printf? Если да, как мы это делаем? Я пытался сделать это, но безуспешно. Thanx заранее!
Вы слышали неправильно. Это неопределенное поведение. – Dave
Нет порядка выполнения 'printf'.' Printf' - это одна функция, и она выполняется один раз в вашем коде. – geoffspear