cagney@chook.ua.oz (Andrew Cagney - aka Noid) (09/22/89)
It has been suggested that the minix C compiler accept prototypes but ignore them. [It may even have been me :-)] Below is an example of a hazard' of doing this. One of the effects of having a prototype is to force the conversion of values before they are passed as parameters. For instance pass a character to a long parameter (as below) then in ansi c the character is automatically converted. However in old c no such conversion occures. Consequently programs that do work under an ansi compiler will break under a pseudo ANSI, prototype ignoring, compiler :-) I think that if possible prototypes should be included in the compileras a complete facility but BUT only if they are going to be used. Try running the program below (if you have turbo c) with the ansi flag (-A) on and off. Andrew Cagney (noid) #ifdef __STDC__ void p(long a) #else void p(a) long a; #endif { printf("Long val is %ld\n",a); } main() { p('a'); }