title: What are the practical differences between C compilers on Windows?
body: <p>A program written in Visual C/C++ 2005/2008 might not compile with another compiler such as GNU C/C++ or vice-versa. For example when trying to reuse code, which uses windows.h, written for a particular compiler with another, what are the differences to be aware of?</p>
  
  <p>Is there any information about how to produce code which is compatible with either one compiler or another e.g. with either GC/C++ or MSVC/C++? What problems will attempting to do this cause?</p>
  
  <p>What about other compilers, such as LCC and Digital Mars?</p>