Никто из них не имел смысла для меня в кулак.
Но потом я вспомнил несколько операций для циклов. Например:
for (a=1,b=2; a<1; a++)
Зная, что 1 является допустимым выражением и что выражения являются допустимыми языковыми элементами, я пришел к выводу, что (1,2) оценивает 1 (но ничего с этим не делает) затем оценивает 2 и возвращает 2.
И наконец:
b = (1,2);
Что значит оценить 1 и 2, как и раньше, вернуть 2 и присвоить его b.