title: Why is memset's value int and not uint8_t?
body: <p>Sorry for the silly question, may be a duplicate.</p>
  
  <p>So <a href="http://www.cplusplus.com/reference/cstring/memset/" rel="nofollow noreferrer">memset</a> is defined as:</p>
  
  <pre><code>void * memset(void * ptr, int value, size_t num);
  </code></pre>
  
  <p>However, we all know that <em>memset</em> sets bytes of <em>ptr</em> to <em>value</em>. My question is, why is <em>value</em> defined as <em>int</em> when it will be interpreted as <em>uint8_t</em>?</p>
  
  <p>Is it due to some legacy compatibility or <em>int</em> actually makes sense in a way I can't comprehend? :)</p>