I personnally use mingw if I need to compile something to C or C++ for windows , and for any serious work , Vagrant and Linux. Cygwin an likes are just horrible and I just don't see the point of these today.
When I get a source tarball and I want to run it on Windows, Cygwin gives me the highest probability of a successful compile; higher than Solaris, for sure, and that's a genuine Unix. YMMV.
Nit pick, but, I think it's safe to say you don't compile anything to "C" or "C++", when you're using mingw, you're compiling a "C" or "C++" program to assembly.