tags:

views:

1488

answers:

20

So, I found out that one of my courses for the next term have C knowledge as a requirement leaving me to start learning C from the scratch (altough a bit familiar with the C-syntax through C#) and I'm looking for a good IDE to write in. I've never used any other IDEs than Visual Studio and Eclipse for respectively VB/C# and Java, and I've been very satisfied with both of them, especially VS.

I've been looking on several IDEs that's capable of compiling C code, and I found that almost all of them lack any kind of intellisense (auto-completion) near the level that I'm used to in VS when writing VB/C#.

So, which C IDEs can you recommend that preferably features a great intellisense/auto-complete?

+3  A: 

Code::Blocks is good, though it's technically C++.

Chris Doggett
Technically, it isn't - it is written in C++, but supports C compilers.
anon
True. They advertise it as a C++ IDE, but anything you can write in C, you can write in C++.
Chris Doggett
+9  A: 

I've used the Eclipse plugin to do C and been very happy with that. During my college days though I used Emacs. I'm not sure it could be called an IDE per se. But it has great syntax highlighting and it's lightweight so it's fast.

kmorris511
I have never heard the words "emacs" and "light weight" and "fast" in the same sentence before :)
Will Mc
Fair enough. But I'm comparing it to Eclipse.
kmorris511
Since when has Eclipse a Doctor I can talk to?
pmr
+2  A: 

In fact there is a C/C++ Plugin for Eclipse as far as I know.

Have a look at: CDT

Kevin D.
+22  A: 
Elijah
I contend that for writing C apps in a *nix environment, Emacs cannot be beat.
Hooray Im Helping
@Hooray Sure it can; vim beats it soundly.
Adam Jaskiewicz
http://www.perturb.org/images/1/dilbert-unix.png
rlbond
+2  A: 

I use Eclipse with CDT, and it works well.

It works more or less like the JDT, so if you're familiar with Eclipse, then CDT is going to feel pretty familiar.

The only catch is, CDT will not come with the compiler, so it will require a separate download, installation and configuration, which may be a little bit difficult.

The CDT/User/FAQ has information on getting a compiler to use with the CDT.

coobird
+2  A: 

Eclipse CDT is worth a look.

Justin Ethier
A: 

I don't think there is anything better than Slickedit when it comes to C. Just my opinion.

Marius Burz
Have you used Eclipse? How do they compare (Features, not "Feel")
Bill K
+2  A: 

Here's another resource. I started it to be about C on Visual Studio but it became about C IDEs: http://stackoverflow.com/questions/28605/c-on-visual-studio

Dinah
+27  A: 

Just use Visual Studio! Start by creating an empty C++ project, then add .c and .h files. If your files are named .c and .h, it automatically uses the C compiler, and not the C++ one.

rlbond
Bonus - one can obtain Express Edition for free, and it's "good enough" for most purposes.
Jim Buck
+6  A: 

Notepad++

NinethSense
strictly speaking, not an ide
bobobobo
@bobobobo: Strictly speaking, neither are Emacs or Vim, but they both do the job well.
musicfreak
+3  A: 

For the Java people migrating to C, both Eclipse and NetBeans have very good and full featured C/CPP development packs.

Also, for the Linux world there are Anjuta and KDevelop.

I think that even Emacs and Vi with the aid of ctags and cscope can provide a fair good autocompletion and code navigation support.

fortran
+4  A: 

For Windows, you may want to check out lcc win32 and Pelles C, these are both very lightweight and freely available C IDEs, that also provide an integrated debugger, online help and other useful features.

The downloads are both less than 10 MB and it's easy to install/uninstall both of them. Also, they run both fine under WINE on Linux.

In my opinion, having a lightweight learning environment is essential when learning a new language, otherwise you are likely to possibly mostly learn to work within a certain environment (IDE), rather than learning the fundamentals first.

In other words, just installing, configuring and using huge IDEs such as Eclipse or MSVC++ Express can be daunting task for a newcomer, especially because both of these IDEs are so powerful. So, I would recommend to concentrate on getting familiar with compact tools and platform-agnostic stuff. Personally, I would hate to install several hundred MB of software tools, just to learn C.

A lightweight compiler such as lcc-win32, pelles or even tcc is a much better tool in my opinion.

Of course, eclipse can be very useful if you may need to also work on other platforms, because then, you can work with one environment on pretty much all platforms.

Also, if you do know that you'll mostly work with the MSVC++ IDE in the future, then using just that also for learning C is probably not a bad idea either, especially because you may already be familiar with some of its concept from working with C#.

However, note that learning C is not about learning how to work with MS Visual Studio, if you only ever know how to program in MSVS, you'll not be a very capable in general, simply because you are restricted to one specific platform and even working environment.

When learning how to drive a car, you are also not restricting yourself to one make and model, but instead generally learn how to drive most cars that follow standards and conventions.

If you were to restrict yourself to just one specific platform and environment, you would also reduce your employability, no matter if you're a driver or a programmer.

none
+25  A: 

I can't believe that no one has said vi yet.

Paul Morie
+1 vi man until I die.
Chris Lutz
As long as you actually mean Vim of course.
rq
You haven't truly lived until you've been inside your .vimrc.
Tom
But is it integrated? ;)
Elijah
@Elijah -- it sure is integrated -- you can run make without leaving vim :)
Paul Morie
There's an emacs command to do that. http://xkcd.com/378/
Randolpho
vi is not an IDE.
rlbond
@rlbond: Actually, according to the votes on the answers to this question, it's one of the best C IDEs evar.
Paul Morie
[vim + make] rulez :)
Eliseo Ocampos
+2  A: 

Codelite is a good IDE, it supports (both MS and GNU) C and C++, and it does code completion.

Rob Kam
+2  A: 

Haven't tried it, but Netbeans has a C/C++ version available. You can also download the C/C++ plugins if you already have it installed.

Thought I'd throw it out here for completeness sake.

Mike Cornell
+1  A: 

Dev Bloodshed is pretty cool. Very light and fast.

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

SP
A: 

I prefer code::blocks. It is open-source, though I use a *nix OS that isn't linux, so it doesn't work for me. I use Kate with it's command line box thing, as it is more "portable" than codeblocks.. or in a console I use vi or nano depending on what is available...

Also, notepad++ is viable.

Earlz
A: 

I got my start on dev c++

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

It's pretty solid and works with GCC on windows. Plus you don't need to worry about project files or anything like that, if you configure things correctly.

Alex Gartrell
+7  A: 

I have been using GNU Emacs as an editor for the past couple of years exclusively for C/C++ development on Linux and OS X. I have not dived any deeper into emacs-lisp other than some basic key bindings, shell commands, build commands, and GDB control, but it is very extensible. Because you are asking for an IDE here would be my build, GNU Emacs, Git, Google, and VirtualBox.

Git for version control, Emacs for the editor, Google for documentation, and VirtualBox for testing configurations on various systems (also is nice if you are running Windows and do not want to dual partition for Linux, vice versa, etc).

John Bellone
A: 

NetBeans is a mature IDE with good refactoring support, and other code-aware things like generating call graphs etc. You can easily plug in existing sources with a Makefile.

Mike Weller