+4  A: 

GCC (GNU Compiler) and vi/emacs (or pico for uber-newbies)

Addendum: remember C is NOT a subset of C++, so a c++ compiler is not necessarily appropriate.

CodeSlave
Oh man, I am not going anywhere near Vi again :P
I guess emacs it is then (although I think that vi is easier to learn).Trust me, it's faster to edit a txt file in vi than than almost any IDE.
CodeSlave
+9  A: 

Most people use Microsoft Visual Studio for development on Windows. You can get a free version here: http://www.microsoft.com/express/download/.

Usually GCC is used on Unix, and is typically included with the OS.

C and C++ are very similar, but C++ allows classes. Most C++ compilers will compile C code.

thealliedhacker
Careful C is NOT a subset of C++ (there are some things in C that won't work on a C++ compiler). So if you want to do true C, you can't use a C++ compiler.
CodeSlave
C and C++ are in certain sense similar, but there are important and fundamental differences you have to know or you will run into trouble.
JesperE
I didn't say any of those things. I said most C++ compilers will compile C, which is true, even if they use things in C that don't work in C++.
thealliedhacker
This doc has some good discussions on the differences between C and C++, http://www.research.att.com/~bs/3rd_compat.pdf
CodeSlave
Just as an aside, thealliedhacker isN't saying that C and C++ are the same or subsets or whatever. For instance, the Visual Studio C++ kit comes with a C compiler as well. If you write a C source file, it will happily compile C-only things.
Jason Coco
CodeSlave: No one said anything about using a C++ compiler. MSVC++ contains both C and C++ compilers.
jalf
Every C++ compiler I've ever come across can also compile C - in fact, by default they'll use C language rules if the source file has a .c extension. However, the reverse obviously is not true - there are plenty of C compilers that don't know squat about C++.
Michael Burr
I agree that there are compilers that can compile both c and c++ (gcc). It's safe so long as the compiler is smart enough to behave appropriately for each kind of source file. My caution comes from seeing c text books with wrong examples where the author (wrongly) used a c++ compiler to test them.
CodeSlave
Which text books, exactly?
Jason Coco
+7  A: 

Well, Visual Studio is the standard on Windows, and there are free versions available. However it does have a bunch of Microsoft specific extensions. For learning though, developing console apps are pretty easy and also fairly close to the standard K&R style C.

However, way back in the day I used to use Watcom, which was also pretty good for the time. It's a lot more sparse than Visual Studio, but that can be an advantage for a beginner. I believe it's also available for free these days at http://www.openwatcom.org/index.php/Main_Page

I'd probably recommend starting with that, if your main O/S is Windows.

Andrew Rollings
See my command to thealliedhacker about C not being a subset of C++
CodeSlave
The VC language extensions can be disabled in project settings, leaving you with a pretty compliant compiler.
jalf
@CodeSlave: The Watcom ide supports plain C
Andrew Rollings
use extern C {} in Visual Studio for standard C linkage. -- http://msdn.microsoft.com/en-us/library/0603949d.aspx
Redbeard 0x0A
A: 

You could use a C++ compiler, such as gcc, to compile your C code. Here's a good article with links to free C compilers/IDEs:

http://computerprogramming.suite101.com/article.cfm/freeprogrammingtools

Ricardo Villamil
Isn't gcc a C compiler? I think you were refering to g++
AntonioCS
From the GCC manual: The abbreviation GCC has multiple meanings in common use. The current official meaning is “GNU Compiler Collection”, which refers generically to the complete suite of tools. The name historically stood for “GNU C Compiler”...
Michael Burr
+2  A: 

Almost all C++ compilers will compile C code.

I would recommend using Microsoft Visual Studio. There is a free version of it.

Most C programmers like to have their own editor and choose a compiler that fits their project. That is why you can download multiple different compilers for C and not so many built into IDE's directly.

It is easy to use editors like Editplus or even Notepad. Some of the fancier editors have syntax highlighting and can run commands in a command window for you.

IDE's usually support multiple languages as well. So when you are tired of C and want to move on to Python, Java, C++, some IDE's can help you do that. I would look into these:

Jeremiah
+4  A: 

I used DevC++ almost exclusively while I was in University for C\C++ programming. It comes bundled with the MinGW compiler. It's pretty easy to get set up and rolling. Other than this, my only other recommendation would be Visual Studio.

Matthew Ruston
+2  A: 

Another good IDE is CodeBlocks, and its cross platform. Give it a try you might like it. I used it for a while an it gave me good results for what i was doing ( an image editor in C ), but it had some bugs.

For unix developing i've always liked using gcc plus an editor... it just makes it fun ( after you get use to it ).

Alan FL
A: 

Simply because the white book is influential, doesn't mean it's a good learning resource!

It is possibly the worst way to learn a language from that has ever existed. On top of that, last time I checked it was unreasonably expensive.

It's a complete language definition, and is good at that (which is why it truly is one of the most influential programming books). For a long time it actually was THE definition of C.

You might consider a second book on the subject.

That said, you should try quite a few different IDEs and see what you are happy with.

In fact, at first you might want to get used to vi/emacs/notepad/make and command-line compiling, this will get you a much stronger understanding of your environment (and if it's not understanding you're after, then you are barking up the wrong language-tree).

As you are investigating different IDEs, I'd give Eclipse or Netbeans with a c plugin a try. They are going to be the most complete and reliable IDEs (except, probably, for Microsoft's) and are platform independent so you won't be left in the cold when you decide to go to the Mac or Linux.

Bill K
Dunno, at least for me, it's easier to learn a language form the language specification, after going through a very very quick bootstrapping tutorial, but many "dry" specs include such a basic tutorial in the first chapter.
DrJokepu
I've got the book and learned from it many years ago. It's a reasonable language definition, but is a bare minimum. Pretty much the definition of "Reference" instead of "Training". I'm shocked that anyone would dispute this. ANY book you bought on c would be better for learning than the white book. I guess some people have to defend spending $60 on what is essentially a pamphlet.
Bill K
Jean Azzopardi
+3  A: 

I recommend Quincy when you are just learning to program in C/C++. Simple to use and created for easily trying out small C/C++ programs.

Suraj Barkale
A: 

For the record, I used TCC, the Tiny C Compiler, to quickly test small code. It can generate exe and DLLs.
You might need to download the Windows headers: it has a limited subset, you might want more.

Digital Mars also has a free C/C++ compiler of reasonable size.

PhiLho
+1  A: 

I used DevC++ when learning C years ago. It was a great tool, although I haven't seen it in a while so I'm not sure what state it is in now.

http://www.bloodshed.net/devcpp.html

Eric
It's the same! It hasn't change in years
AntonioCS
A: 

When it comes to c/c++ compilers on the Windows platform there are quite a few to choose from.

And when it comes to and IDE, the Zeus IDE can be easily configured to work with any of them.

jussij
A: 

GNU C is pretty much an industry standard, even if its a unixy compiler. You can also use Visual Studio, but keep in mind it doesnt support C99 very well. Other choices are out there, like pcc (I really like this one), llvm (also very interesting), etc, but those usually require some level of enthusiasm.

ahoka
A: 

The free country website has a list of free C compilers. Many of which work on Windows.

Slapout
+4  A: 

You can download the Digital Mars C compiler for Windows for free.

Walter Bright
A: 

what? I found K&R to be an excellent, well explained, kinda-newbie friendly book. Have we read the same book?

A: 

I'm surprised no-one's mentioned Pelles C. Great little C IDE for Windows; includes an LCC-based compiler. That said, NetBeans 6.5 has decent support for C and C++, and Code::Blocks is well worth a whirl.

Rob