GCC for Windows is provided by two projects currently. They both provide a very own implementation of the Windows SDK (headers and libraries) which is necessary because GCC does not work with Visual Studio files.
The older mingw.org, which @Mat already pointed you to. They provide only a 32-bit compiler, and the latest version is GCC 4.5 as of the time of this writing. See here for the downloads you need:
- Binutils is the linker and resource compiler etc.
- GCC is the compiler, and is split in core and language packages
- GDB is the debugger.
- runtime library is required only for mingw.org
- You might need to download mingw32-make seperately.
- For support, you can try (don't expect friendly replies) mingw-users@lists.sourceforge.net
The newer mingw-w64, which as the name predicts, also provides a 64-bit variant. I use it and build toolchains with their CRT. Personal and auto builds are found under "Toolchains targetting Win32/64" here. They also provide Linux to Windows cross-compilers. I suggest you try a personal build first, they are more complete. Try mine (rubenvb) for GCC 4.6, or use sezero's for GCC 4.4 and 4.5. Both of us provide 32-bit and 64-bit native toolchains. These packages include everything listed above. For support, send an email to mingw-w64-public@lists.sourceforge.net or the forum via sourceforge.net.
Both projects have their files listed on sourceforge, and all you have to do is either run the installer (in case of mingw.org) or download a suitable zipped package and extract it (in the case of mingw-w64).
There are a lot of "non-official" toolchain builders, one of the most popular is TDM-GCC. They may use patches that break binary compatibility with official/unpatched toolchains, so be careful using them. It's best to use the official releases (or in the case of mingw-w64, the Personal builds are easier to get started with).
Re the other answer: Cygwin/MSYS != gcc. Using GCC does not require the other. Plain users shouldn't be coimpiling GCC. That process is waaay to involved and time-consuming. Enough binary distributions floating around...