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.