__P macro

Giorgos Keramidas keramida at ceid.upatras.gr
Thu Jun 8 14:47:05 UTC 2006


On 2006-06-08 10:45, Saifi <saifi at twincling.org> wrote:
> Hi:
>
> Most of the racoon code uses __P macro.
>
> and the __P macro is defined as -
>
> #undef __P
> #ifndef __P
> #if __STDC__
> #define __P(protos) protos
> #else
> #define __P(protos) ()
> #endif
> #endif
>
> It seems to make many expressions difficult to read -
> eg.
>
> static int (*pkrecvf[]) __P((caddr_t *)) = {
>  ...
> }
>
> What is the downside if this macro is not used in defining new
> function prototypes ?  (working with FreeBSD 5.4 and above with
> gcc 3.x compiler)

Your program may fail to compile with compilers that do not
support ANSI C function prototypes.  This includes some old,
pre-ANSI compilers.  How important these compilers are for your
particular application is debatable though.



More information about the freebsd-questions mailing list