title: Convert Address to long - variable results in value?
body: <p>Can anybody explain this behaviour to me pls?</p>
  
  <pre><code>static short nDoSomething(const char* pcMsg, ...)
  {
    va_list pvArgument;
    long lTest;
    void* pvTest = NULL;
  
    va_start(pvArgument, pcMsg);
  
    pvTest = va_arg(pvArgument, void*);
    lTest  = (long) pvTest;
  
    va_end(pvArgument);
    return 0;
  }
  </code></pre>
  
  <p>If I call this function in the main like this:</p>
  
  <pre><code>int main(int argc, char* argv[])
   {
     char acTest1[20];
     nDoSomething("TestMessage", 1234567L, acTest1);
  
  
    return 0;
  }
  </code></pre>
  
  <p>I thought that the address of pvTest would be in lTest, but in fact it contains 1234567 ...</p>
  
  <p>How is this possible? </p>