title: Prototype of printf and implementation
body: <p>I started to wonder how the <code>printf</code> function is declared, it always receive a string as first parameter (well, <code>const char*</code>) and then the rest of the parameters can be a varierty of types, a variable number of them and given in different order.</p>
  
  <p>Does this mean the <code>printf</code> function is declared and overridden for each of the possibilities? This does not make much sense to me, so does it really work like this or it's way different?</p>
  
  <p>Also, how is the function implemented? If it's too complicated I'd just like to know how it works internally in general.</p>