Argumentos de retorno separados por vírgula na função C [duplicado]

Esta pergunta já tem uma resposta aqui:

O que o operador de vírgula faz? 9 respostas

Ao concluir um teste de programação C, me foi dada uma pergunta sobre a saída esperada de uma função que parece retornar dois valores. Foi estruturado da seguinte forma:

int multi_return_args(void)
{
 return (44,66);
}

A pergunta me pegou de surpresa e, inerentemente, pensei que, se possível, o primeiro argumento seria passado ao chamado

Mas depois de compilá-lo, o resultado é 66. Depois de uma pesquisa rápida, não consegui encontrar nada sobre a estruturação de uma declaração de retorno como essa, então fiquei imaginando se alguns poderiam me ajuda

Por que se comporta assim e por quê?

questionAnswers(4)

yourAnswerToTheQuestion