Pedido de operações para pré-incremento e pós-incremento em um argumento de função? [duplicado

Esta pergunta já tem uma resposta aqui:

or que essas construções usam um comportamento indefinido pré e pós-increment 14 respostas

Tenho código C:

main()
{
    int a=1;
    void xyz(int,int);

    xyz(++a,a++);     //which Unary Operator is executed first, ++a or a++?

    printf("%d",a);
}
void xyz(int x,int y)
{
    printf("\n%d %d",x,y);
}

A funçãoxyz tem dois parâmetros passados,++a ea++. Alguém pode explicar a sequência de operações para explicar o resultado?

O código acima imprime "3 13" ou "2 23", dependendo do compilador usad

questionAnswers(4)

yourAnswerToTheQuestion