types of optional arguments in stdarg.h

Karl Heuer karl at haddock.ima.isc.com
Thu Sep 8 05:14:07 AEST 1988


rbutterworth at watmath.waterloo.edu (Ray Butterworth) writes:
>[proposal for some future version of the Standard:]
>extern void func(type1, type2, ...);  /* usual meaning */
>extern void func(type1, type2  ...);  /* no trailing comma */
>The missing comma would indicate that all the optional "..." args
>must have the same type as the [last declared] argument.

I independently came up with this same idea.  I think the concept is right,
but the syntax is lousy -- it's too easy to add/delete that comma and
accidentally change the meaning of the declaration.

Also, in C++ the comma is optional (Bjarne wanted it to be forbidden, but
X3J11 made him fix it).  It would not be wise to make a syntax change to C
that is in direct conflict with existing practice in C++.

(Meanwhile, lobby your lint vendor for a /*MONOMORPHIC*/ lintpragma that will
check this for you.)

Karl W. Z. Heuer (ima!haddock!karl or karl at haddock.isc.com), The Walking Lint



More information about the Comp.std.c mailing list