If I declare a prototype int f(int a); and then in scope of the prototype, subsequently define the function using an old style definition: int f() char *p; { ... } will an ANSI compiler flag this as an incompatible declaration? I would hope so. Please send responses by email.