Очки последовательности в printf

Я читаюВот что есть точка последовательности:

После действия, связанного со спецификатором формата преобразования ввода / вывода. Например, в выраженииprintf("foo %n %d", &a, 42)есть точка последовательности после%n оценивается перед печатью42.

Тем не менее, когда я бегуэтот код:

int your_function(int a, int b) {
    return a - b;
}

int main(void) {
    int i = 10;

    printf("%d - %d - %d\n", i, your_function(++i, ++i), i);
}

Вместо того, что я ожидаю, я получаю:

12 - 0 - 12

Это означает, что там былоне точка последовательности, созданная для спецификатора формата преобразования. Являетсяhttp://en.wikipedia.org неправильно, или я просто что-то неправильно понял, или gcc не совместим в этом случае (случайно Visual Studio 2015 дает тот же неожиданный результат)?

РЕДАКТИРОВАТЬ:

Я понимаю, что порядок аргументовyour_function оцениваются и присваиваются параметры не определены. Я не спрашиваю, почему мой средний термин равен 0. Я спрашиваю, почему два других термина - 12.

Ответы на вопрос(3)

Ваш ответ на вопрос