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: