title: problems using the -ansi switch in MinGW 3.4.5
body: <p>I was reading about the flags used in gcc, and read a reccommendation to use <code>gcc -ansi -pedantic -Wall file1 [file2 [file3...]] -o output</code>. For the quality of my code's sake, to keep it standard, and get all the warnings about it.</p>
  
  <p>Well, about compiling with -ansi...
  If I include <code>&lt;stdlib.h&gt;</code>, gcc gives me this error:</p>
  
  <p><code>In file included from ansi.c:2:
  C:/c/bin/../lib/gcc/mingw32/3.4.5/../../../../include/stdlib.h:317: error: syntax error before "double"</code></p>
  
  <p>That line in  is this:</p>
  
  <pre><code>inline double __cdecl __MINGW_NOTHROW strtod (const char* __restrict__ __nptr, char** __restrict__ __endptr)
  { return __strtod(__nptr, __endptr); }
  </code></pre>
  
  <p>does <code>inline</code> not exist in C? Shouldn't a "standard" header be standard ansi? Should I just remove the inline or avoid compiling with stdlib.h (I can't really remember what's in stdlib right now)?</p>
  
  <h2><strong>Update</strong></h2>
  
  <p>from reading the link which Adam posted I found out that "inline" isn't a keyword in C89, and C89 is what is enforced with the -ansi switch. I had to change it to <code>__inline__</code> which is, I suppose, a MinGW macro.</p>
  
  <p>Thanks for the help.</p>