title: extern int main(int argc, char* argv[]) use?
body: <p>I've been reading SFML's source code. I found the way it wraps the win32 in a fashion like this:</p>
  <pre><code>#ifdef _WIN32 //something like that
  #include &lt;windows.h&gt;
  extern int main(int argc, char* argv[]);
  int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, INT)
  {
     return main(__argc, __argv);
  }
  #endif
  </code></pre>
  <p>so <code>line 4</code> I see this typical win32 program entry. however what are the <code>extern main</code> and <code>return main(__argc, __argv)</code> doing?</p>
  <p>what's <code>__argc</code> with the underscore?</p>
  <p>as in my own main function after loading SFML, all I need is to write <code>int main()</code>.</p>
  <p>I am very curious how this work in terms of writing cross-platform codes. (I used the same fashion in my win32 code, it worked!! anyone explain the magic behind this please???)</p>