I have been using only free compilers for the past six years for my C, C++ programming. On Linux there is no need to search beyond gnu compiler collection. The gnu compiler for C, C++ on Windows is available through Dev-C++ which has been suggested earlier in this forum. It is on Windows that we have an option of various compilers.
I have been using the Borland commandline compiler collection available from their site, the digital mars compiler, and the lcc compiler.
The hurdles with free compilers:Lack of good documentation.Lack of an IDE.The advantages:You get a chance to compare the performance your program can deliver after compilation from different compilers.You get different error messages, which just might help you to discover bugs easily.You just might discover a bug in one of the compilers and save your time finding bug in your own program, when it is not there at all!A chance to understand the commandline switches and various options provided by various compilers.Here are the ways I overcome the hurdles mentioned:I use an editor, namely jfe to create custom buttons which just invoke the compiler with the file name. You can do this kind of stuff with several editors. Most popular are emacs, and the one by komodo. You can even do it in Eclipse!The documentation for C/C++ can be downloaded separately from Borland. And DM hosts a very high grade manual on their site.lcc is a very high quality C compiler, full with an IDE and documentation and several very high quality libraries. If you are interested in C on Windows. This is the compiler for you. I would strongly recommend you to try this compiler. It has got several amazing tools including integrated GUI profiler, debugger, code beautifier, code metrics, project browser, resource editor- yes you can do full GUI programming in C on Windows using this. The libraries include AES encryption, PERL regex library, ZLIB library to name a few. It was developed over years in educational institute. Best of all its error messages are very helpful.
There is so much more we can discuss here. We can discuss more free compilers. We can decide on certain common criteria to compare free compilers and then rate them!
There are a few good free compilers. Geany can be configured to act as a C++ compiler, Eclipse has a C++ development tool. And Dev-C++ has been mentioned. If you are a fan of the Microsoft .NET Framework, then Visual C++ 2008 Express Edition is for you. Google here is your friend.
Personally I use GNU GCC (MingW). I just also put the executables in my root system folder so they are part of the windows command line. All I use now to do C++ work is Notepad++ (a free, tabbing and colorcoding text editor) and cmd with gcc. I really recommend doing that. It is free, and it works well.
I like Code:Blocks . I think it has a neat environment. Its somewhat a hybrid between old turbo 4.5 IDE and Eclipse. The IDE can also support other languages but I work majorly on C++ . This one also Uses MingW (GCC compiler) and its one of the fastest Compiler that I've come across. Also It was a hassle free installation, Unlike Eclipse which took me like 3-4 hrs to configure and then also I couldn't run my ANSI C code .@DeMOnFiRe -- I would say you try this one out. Since you are working on MingW. You just need to download the IDE. If you've worked on Turbo C++ 3.0 IDE before and you are missing the old fashion CTRL+F9 , This one was built for you