Subject: Re: __P???
To: Tony Tam <ttam@nortel.ca>
From: Peter Seebach <seebs@herd.plethora.net>
List: tech-net
Date: 11/08/1997 21:35:02
In message <199711090322.VAA22799@herd.plethora.net>, "Tony Tam" writes:
>Can someone please explain to me the significance of
>__P in the source code of NetBSD
Almost certainly.
>one example is in the function declarations of Netinet/tcp_var.h at the
>bottom of the file:
>struct tcpiphdr *
> tcp_template __P((struct tcpcb *));
>What is the __P?
There are those who believe that, one day, in the future, we will need
to compile significant portions of the NetBSD tree on machines without
C compilers. :)
Seriously, back when 4.4 happened, there were plenty of new compilers,
and plenty of old ones, so, rather than give up completely on the extra
type-checking provided by prototypes, The Implementors chose to develop
a little macro to use for function declarations.
With a C compiler, they'll have something like
#define __P(x) x
with a pre-C compiler, they'll have something like
#define __P(x) ()
to produce an "old-style declaration".
-s