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