Many compilers accept a function-call usage without a prototype. This compiler issues a warning for this. However if the prototype of a function with open arguments is missing or this function is called with a different number of arguments, this is clearly an error:
printf( "hello world!"); // compiler assumes void
printf(char*);
// error, argument number mismatch!
printf( "hello %s!", "world");
To avoid such programming bugs use the -Wpd: Error for Implicit Parameter Declaration compiler option and always include or provide a prototype.