Comma операторы имеют младший приоритет и ассоциативность слева направо, поэтому это гарантирует порядок:
i = ++j, j = i++;
i будет равно 2, а затем j будет 1 после этого утверждения, если i и j будут одновременно 0.
Однако, действительно ли запятые разделители в определении типа в C также гарантируют порядок? Например,
int i = 1, j = ++i;