Missing Prototype

Many compilers accept a function-call usage without a prototype. This compiler will issue 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.