K&R-style variadic functions

H. S. Teoh hsteoh at quickfur.ath.cx
Wed Jul 18 06:55:30 PDT 2012


On Wed, Jul 18, 2012 at 11:23:33AM +0100, Regan Heath wrote:
> On Tue, 17 Jul 2012 19:39:25 +0100, H. S. Teoh
> <hsteoh at quickfur.ath.cx> wrote:
[...]
> >This modern C declaration:
> >
> >	int main(int argc, char **argv) {
> >		exit(1);
> >	}
> >
> >is written thus in K&R:
> >
> >	int main(argc, argv)
> >		int argc;
> >		char **argv;
> >	{
> >		exit(1);
> >	}
> 
> Clarification.
> 
> The /definition/ is as you have above, the /declaration/ is not.
> The declaration is what goes in the header file, and in K&R (and
> ANSI C for that matter) looks like:
> 
> int main();
> 
> parameters are not required for the declaration, only the definition.
[...]

You are right.

And also, under K&R syntax, the 'int' can be omitted from before main. I
*think* the entire argc line can be omitted as well (undeclared
variables default to int, IIRC). 'Tis a strange world they used to live
in. :-)


T

-- 
Almost all proofs have bugs, but almost all theorems are true. -- Paul Pedersen


More information about the Digitalmars-d mailing list