[gnu.gcc] slight difference between gcc and g++ in handling "..."

ghfeil@white.toronto.edu (Georg Feil) (12/21/89)

I've noticed that g++ will accept either

     int printf(const char*, ...);

or

     int printf(const char* ...);


But gcc likes only the first one (with the comma). Any reason for this?
Which is the preferred usage?

Ok, I know it's a trivial point.

Georg.
-- 
Georg Feil                                 Internet: ghfeil@white.toronto.edu
                                             -or-  : georg@sgl.ists.ca
...if all else fails, try:
{uunet,pyramid,watmath,utzoo}!utcsri!white!ghfeil
ghfeil%white.toronto.edu@relay.cs.net     (ARPA)

meissner@skeptic.osf.org (Michael Meissner) (12/22/89)

In article <89Dec20.221311est.27295@snow.white.toronto.edu>
ghfeil@white.toronto.edu (Georg Feil) writes: 

|I've noticed that g++ will accept either
|
|     int printf(const char*, ...);
|or
|     int printf(const char* ...);
|
|But gcc likes only the first one (with the comma). Any reason for this?
|Which is the preferred usage?

Basically what happened is C++ came out with the 2nd syntax.  The ANSI
X3J11 committee decided that they liked prototypes, but that there
should be a comma separating the '...' from the other arguments.  I
was certainly at the meeting when this was changed, but for the life
of me, I can't remember why it was changed (it was around the 1st Ft.
Lauderdale or the Concord Meetings).  C++ version 2.0 added ANSI's
syntax, and kept the old syntax as well for backward compatibility.
GNU C, being an ANSI C compiler, will only allow the ANSI syntax.