Determinación del orden de evaluación de argumentos de subrutina [duplicado]

Esta pregunta ya tiene una respuesta aquí:

¿Por qué estas construcciones utilizan un comportamiento indefinido previo y posterior al incremento? 14 respuestas

Estoy escribiendo un programa en C que determina el orden en que se evalúan los argumentos de subrutina.

o que tengo hasta ahora es lo siguiente:

int i=1;
printf("%d %d %d\n", i++, i++, i);

pero no estoy seguro si estoy en el camino correcto o sería más fácil escribir en un idioma diferente como Ruby.

Cómo puedo escribir un programa en C (o Ruby) que determine el orden en que se evalúan los argumentos de subrutina?

Respuestas a la pregunta(2)

Su respuesta a la pregunta