title: Void function as pointer
body: <p>What's the difference between this:</p>
  
  <pre><code>void copydata(void *, void *, size_t);
  </code></pre>
  
  <p>and this:</p>
  
  <pre><code>void *copydata(void *, void *, size_t);
  </code></pre>
  
  <p>I use pointer functions when they must return a pointer, for example:</p>
  
  <pre><code>char *myName(int i)
  {
    switch (i) { case 0: return "Jack"; break; default: return "Adam"; }
  }
  </code></pre>
  
  <p>but in the "void *copydata" example, the function doesn't have to return anything, and it compiles correctly in both ways, and the resulting asm code appears to be the same in both cases.</p>