In your code
return (44,66);
does (incorrectly) use a comma property. Here, it practically discards the first (left) operand of the operator , and returns the value of the second (right operand).
To quote the C11 standard, chapter Β§6.5.17, comma operator
The left operand of the comma operator is evaluated as a void expression; between its evaluation and the point of the correct operand there is a sequence point. Then the right operand is evaluated; The result has its type and meaning.
In this case, this is the same as the entry.
return 66;
However, FWIW, the left-side operand is evaluated as a void expression, which means that if there is any side effect of this evaluation, this will happen as usual, but the result of the whole expression of the expression associated with the comma operator will have the type and value of the operand evaluation right side.
source share