title: Typedef doesn't work in included file
body: <p>I have this code:</p>
  
  <pre><code>#include &lt;stdint.h&gt;
  
  #define internal static
  #define local_persist static
  #define global_variable static
  
  #define Pi32 3.14159265359f
  
  typedef int8_t int8;
  typedef int16_t int16;
  typedef int32_t int32;
  typedef int64_t int64;
  typedef int32 bool32;
  
  typedef uint8_t uint8;
  typedef uint16_t uint16;
  typedef uint32_t uint32;
  typedef uint64_t uint64;
  
  typedef float real32;
  typedef double real64;
  
  #include "someheader.h"
  // etc
  </code></pre>
  
  <p>And in the someheader.h file I have:</p>
  
  <pre><code>struct game_sound_output_buffer
  {
      int16* Samples;
      int SampleCount;
      int SamplesPerSecond;
  };
  </code></pre>
  
  <p>I am using Visual Studio and I get these errors on the line with the int16* variable:</p>
  
  <pre><code>error C2143: syntax error : missing ';' before '*'
  error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
  </code></pre>
  
  <p>Why does this happen? I typedefed before including the header file.
  And the weirder thing, it works fine if I compile from the command line</p>
  
  <pre><code>cl -FC -Zi file.cpp user32.lib Gdi32.lib
  </code></pre>