Unnecessary parenthesis
Ray Lubinsky
rwl at uvacs.CS.VIRGINIA.EDU
Fri Jul 8 23:36:56 AEST 1988
In article <8209 at brl-smoke.ARPA>, gwyn at brl-smoke.ARPA (Doug Gwyn ) writes:
> My main objection to excessive parentheses is that they
> make the code less readable, not more. There are a few
> cases where the C precedence rules run counter to intuition,
> and in such cases sparing use of technically redundant
> parentheses can help the code reader. However, they should
> not be used just because the code WRITER is unsure. (Most C
> programmers I know have a copy of the chart from K&R 1st Ed.
> p. 49 taped up near their terminal.)
When I read code I tend to browse, slowing down for the parts the require more
thought. Something like
if (a < b && b < c && c < d && d < e)
is going to stop my scanning a lot more often than
if ((a < b) && (b < c) && (c < d) && (d < e))
NOT because I am unaware of C precedence rules but because the first example is
devoid of visual structure. Maybe your eye can parse the first as easily as
the second, but I have to drop into look-at-it-more-closely mode. If this
happens to often it reduces my overall comprehension of the code. I'm sure
we'd both agree that the FULL parenthesization of the expression:
if ((((a < b) && (b < c)) && (c < d)) && (d < e))
would be abominable -- in my case because it makes the expression hard to
scan without thinking about it.
As for the "return" business I think it's more clear that
return a + b * c;
is returning a value when it's written as
return(a + b * c); OR EVEN return(a+(b*c));
because in scanning mode I expect a non-void function to return an expression
and I catch the concept of here-is-an-expression a lot more quickly when I see
those entirely unnecessary parentheses. I also think that entirely
unnecessary white space helps readability, but a little execess
parenthesization can be an acceptable substitute.
--
| Ray Lubinsky, UUCP: ...!uunet!virginia!uvacs!rwl |
| Department of BITNET: rwl8y at virginia |
| Computer Science, CSNET: rwl at cs.virginia.edu -OR- |
| University of Virginia rwl%uvacs at uvaarpa.virginia.edu |
More information about the Comp.lang.c
mailing list