[comp.os.minix] Use of _PROTOTYPE macro

steve@basser.oz (Stephen Russell) (12/04/89)

If it's not too late, I'd like to argue _against_ the _PROTOTYPE macro
currently being used. While it works fine for examples such as this

	_PROTOTYPE( int creat, (char *__path, mode_t __mode));

it is not obvious how it will work for functions that return pointers
to functions (such as signal(2)) or other wacky types, expect by
typedef'ing the function's type.

I prefer Earl Chew's format:

	int	creat    P((const char *, mode_t));

as it recognises that only the argument list needs special attention. 
P as the macro name is a poor choice though. How about _ARGS of something
else?

BTW, if anyone is interested, I have a C prototype generator that can produce
the second form of output. If there's enough interest, I'll post it.

cechew@bruce.OZ (Earl Chew) (12/05/89)

From article <2761@basser.oz>, by steve@basser.oz (Stephen Russell):
> I prefer Earl Chew's format:
> 
> 	int	creat    P((const char *, mode_t));
> 
> as it recognises that only the argument list needs special attention. 
> P as the macro name is a poor choice though. How about _ARGS of something
> else?

I chose P because the stuff wasn't meant to be exported to the rest of the
universe. If you were considering putting it in a unversally visible include
file, then, I agree, a better name would have to be chosen.

Earl
-- 
Earl Chew, Dept of Computer Science, Monash University, Australia 3168
ARPA: cechew%bruce.cs.monash.oz.au@uunet.uu.net  ACS : cechew@bruce.oz
----------------------------------------------------------------------