At first glance, this appears to simplify to
if (a == 0)
a = b;
However, if a
is a NaN, this simplification gives different results. Any comparison with a NaN is false, so the more complicated expression will assign b
to a
if a
is zero or a NaN.
2
solved Need explanation of an expression