The __P has the definite down side that it looks ugly, and that in some cases a compiler not-gcc may complain if the K&R style definition means a different thing than the prototype; int foo(short); followed by int foo(x) short x; { ... } is not happy for some compilers. -s