title: Is it correct to drop #include <stdio.h> in C?
body: <p>If I use <code>printf</code>, <code>scanf</code>, <code>puts</code> or some other function in C (not C++) and don't write an include line, can it be treated as unspecified or undefined behaviour?</p>
  
  <p>As I remember, C didn't require porotope declaration at all, but it was recommended to have them to allow compiler to make type casts on calling. And prototypes for <code>printf</code> and other such functions are not required still, not sure about custom functions.</p>
  
  <p>PS: This question relates to discussion in comments of <a href="https://codegolf.stackexchange.com/a/55989/32091">https://codegolf.stackexchange.com/a/55989/32091</a>.</p>