On Fri, 17 Feb 2006, Florin Iucha wrote:
> On Thu, Feb 16, 2006 at 06:48:04PM -0600, Brian Hurt wrote:
>> Of course, pretty much all use of
>> the comma operator is abuse of the comma operator.
>
> The comman operator is used extensively in for loops, to allow two
> indices to advance in unison.
This is one of those situations where a lot of people think it's an
optimization, but it's not. Say you're doing:
for (i = 0, j = k; j < n; i++, j++) {
a[i] = a[j];
};
On most systems, it's actually *more* efficient to do:
for (j = k; j < n; j++) {
a[j-k] = a[j];
}
Especially if k is a constant, like 1.
The few times this is really necessary, hoisting one variable up out of
the for loop doesn't hurt performance at all.
Therefor, using the comma operator in the a for loop, even for multiple
indicies, is an abuse of the comma operator.
>
> The other use is in silly tricky questions used in interviews to
> humiliate the applicants.
This isn't an abuse of the comma operator, this is an abuse of
interviewees. But it can be quite entertaining to watch. Although
personally I perfer tricky questions about sequence points.
Brian