title: Are void pointers safe?
body: <p>I'm working on bitwise operations for unsigned integer types. I want to write left-circular-shift function for uint8_t, uint16_t, ... ,uint64_t types. </p>
  
  <p>My solution is:</p>
  
  <pre><code>(void*) left_circular_shift(void* number, size_t size);
  </code></pre>
  
  <p>If size is 64, I convert void* to uint64_t etc., but many programmers avoid using void*. Should I implement that function for all unsigned integer types?</p>