[net.lang.c] return <expression> -vs- return

bet@ecsvax.UUCP (05/18/84)

So much complaining about return(<expression>)!
I have always coded it that way, and intend to continue. In fact, I didn't
realize that "return <expression>" was legal until this discussion -- I learned
C by reading K&R, and didn't dwell much on the C reference in the back. If you
look through the book you see that most (all that I could find) instances of
and references to the return statement *except* the entry in the "C reference
manual" use parentheses. Someone somewhere, whose opinion is held in some
esteem (judged by the reverence in which this book is held in discussion in
this group) seems to consider return(<expression>) *good* style. People
are complaining that it looks like a function call; so does the while
statement when followed by a null statement, which doesn't bother me at all.
The C language uses a concept called *reserved words*. For those of you in the
know, this can make the job of the compiler easier -- the lexical analyzer
can catch these suckers with very little work, simplifying the parse. Well,
*I* also understand reserved words, and recognize them in reading code.
return(<expression>) doesn't look like a function call, because "return"
is a reserved keyword. The syntax of the while statement looks like

	while(<expression>) statement

If we eliminated the parentheses we would probably need to make a new reserved
word part of the while statement. And the for statement probably wouldn't
survive in its current generality. The simplification that comes from using
parentheses (overloading them) to delimit parts of statements I like.
Recognizing these things in code causes me no trouble. The compiler uses
reserved words, and so do I. Out of curiosity, where did this vociferous
body of users learn C? Surely not from K&R!
					Bennett Todd
					...{decvax,ihnp4,akgua}!mcnc!ecsvax!bet