Checksum: 26824
Lines: 28
Path: utzoo!sq!msb
From: msb@sq.uucp (Mark Brader)
Date: Tue, 29-Dec-87 06:38:19 EST
Message-ID: <1987Dec29.063819.11692@sq.uucp>
Newsgroups: comp.lang.c
Subject: Re: Clarifications on ANSI C nits
Summary: a reason why int f(int a, int b); is better than int f(int a,b;);
References: <3725@hoptoad.uucp> <458@m10ux.UUCP>
Reply-To: msb@sq.UUCP (Mark Brader)
Organization: SoftQuad Inc., Toronto

Michael Condict (mnc@m10ux.UUCP) expresses regret that the new function
prototype syntax uses commas rather than semicolons as delimiters, and asks:


> Am I the only one bothered by this?  I've noticed no other discussion of it.

No, I asked the same question well over a year ago.  As I recall, the answer
given was that if semicolons were allowed then error recovery became very hard.

Notice that the following would be VALID input:

	int f (int a, b;
	float c;
	char *p, s[20];
	int p (int q, r;);
	);

Now that I think of it, the force of this argument seems somewhat weakened
since, if I understand correctly (my copy of the latest Draft being at the
office, and me not), even under the existing syntax a declaration such as

	int f (struct {int p, q;} r);

is legal and does contain embedded semicolons.  Hmm.

Mark Brader				"C takes the point of view
SoftQuad Inc., Toronto			 that the programmer is always right"
utzoo!sq!msb, msb@sq.com				-- Michael DeCorte
