Für Windows gibt es ja die verschiedenen Versionen von MS Visual Studio, von denen einige auch kosrenlos sind.
Allerdings fand ich es bereits schon zäh, den Download zu finden, ist aber auch schon ein paar jahre her.
MS VS ist aber sicher das beste, wenn man tiefer in die Programmierung von Windows-Programmen einsteigen will, so mit grafischen Oberflächen und so.
Da du erstmal einsteigen willst, kann ich dir Dev-C++ ( http://sourceforge.net/projects/orwelldevcpp/ ) empfehlen, das ist recht schlank und nutzt den recht universellen Gnu-Compiler.
Wenn du Microkontroller programmieren willst, bekommst du von den Herstellern eine eigene Programmierumgebung, die an Microkontroller angepasst ist und spezielle Funktionen bereitstellt. Oft versteckt sich dahinter nebenbei auch der Gnu-Compiler. Ist halt universell.
Übrigens, zum programmieren von Microkontrollern benötigst du keine all zu tiefgreifenden C-Kenntnisse. Zwar kommt hinzu, wie man den Microkontroller konfiguriert und wie man seine Peripherie benutzt, aber wenn du in C Arrays, Funktionen und die Aufteilung eines Projektes in mehrere Dateien kennst, kannst du da schon anfangen.