title: Why does `"%c"` exist in `printf` if `char` is converted to `int`?
body: <p>In C you have the <code>"%c"</code> and <code>"%f"</code> formats flags for <code>printf</code>- and <code>scanf</code>-like functions. Both of these function use variable length arguments <code>...</code>, which always convert <code>floats</code> to <code>doubles</code> and <code>chars</code> to <code>ints</code>.</p>
  
  <p>My question is, if this conversion occurs, why do separate flags for <code>char</code> and <code>float</code> exist? Why not just use the same flags as for <code>int</code> and <code>double</code>?</p>
  
  <blockquote>
    <p><strong>Related question:</strong><br>
    <a href="https://stackoverflow.com/q/210590/627005">Why does scanf() need &quot;%lf&quot; for doubles, when printf() is okay with just &quot;%f&quot;?</a></p>
  </blockquote>