*less* about style and more about correctness

Gary M. Samuelson garys at bunker.UUCP
Tue Jul 16 00:36:59 AEST 1985


Never mind which idiom produces more efficient object
code; you better figure out it's supposed to do first.

If you write:

> 	while (p->duck)
> 		p++;

instead of

> 	while (p++->duck)
> 		;

you will get different results. in the first case, 'p' will
point to the structure/union where 'duck' was first found to
be null; in the second case, 'p' will point to the structure/union
*following* the one where 'duck' was found to be null.

Both of the above fragments are obscure.  The fix is, as someone
else suggested, to write a comment to indicate what is supposed
to happen.  E.g.:

	/* Find a null 'duck' */
	while (p->duck)
		p++;

or

	/* Skip the next null 'duck' */
	while (p++ -> duck)
		;

*Now* we might discuss stylistic questions, like what kind and
how much white space should be used to improve readability  (I
already added some in the second case to separate the operators),
or where the comment should be.

Gary Samuelson



More information about the Comp.lang.c mailing list