title: What is difference between built-in "void" and "VOID" from "typedef void VOID"?
body: <p>Accidentally I have the following issue:</p>
  
  <pre><code>typedef void VOID;
  
  class Cls1
  ｛
  public:
    VOID Clear(VOID);
  };
  </code></pre>
  
  <p>And the compiler (g++ 4.6.1) reported</p>
  
  <blockquote>
    <p>error: 'anonymous' has incomplete type
    error: 'invalid use of 'VOID {aka void}'</p>
  </blockquote>
  
  <p>Is there a particular reason 'void' differ from 'VOID'?</p>