Emacs supports C programming well by default since Emacs and many parts of the GNU system are written in C. “GNU’s not Unix”, after all. See TheGnuProject.

For programming in C with Emacs use CcMode.

For indenting C, see IndentingC.

For an integrated environment with advanced features use CEDET.

For building indexes and running searches on definitions of C source code use EmacsTags. The GnuGlobal is also popular.

For DebuggingWithEmacs use the GrandUnifiedDebugger.

See also: