You bumped into the
comma operator
.
Basically, given an expression
a,b,c, ...
the compiler evaluates each term, working left to right, discarding the results of all but the leftmost, which is the used as the final value of the expression. Thus, given
if ( f(a), false )
the function call
f(a)
is made, the result of the call is discarded, the
false
is used as the condition value of the
if
expression.