Useful tools for C programmers
C file browsing
CScope
CScope prints out the global symbols in C programs and helps to navigate around files.
Cxref
Cxref - C Cross Referencing & Documenting tool is a program that will produce documentation (in LaTeX, HTML, RTF or SGML) including cross-references from C program source code. It has been designed to work with ANSI C, incorporating K&R, and most popular GNU extensions.
Memory errors
Valgrind
Valgrind detects memory errors such as leaks (failing to free memory), use of uninitialized memory areas, or writing to unallocated areas of memory in C programs. It runs on Linux and FreeBSD.
Indent
Indent can reindent the lines of source code in C programs according to various standards.
Exuberant ctags
Exuberent ctags, distributed with Emacs, helps find the definition of functions and symbols.
etags *.c *.h
Find common programming errors
lint
is a program available on Unix systems which finds
programming errors.
Create header (.h) files from C
CFunctions
CFunctions makes header files (.h files) from C files.
cfunctions -in *.c
Makeheaders
Makeheaders makes header files (.h files) from C files.
Makedepend
Makedepend makes a list of dependencies for a Makefile from your C source code.
makedepend -Y *.c *.h
Cdecl
Cdecl helps to unravel complicated C declarations.
Pastebins
Codepad.org
Codepad.org lets you test short C programs on the web, without a compiler.
Ideone.com
Ideone lets you test short C programs on the web, without a compiler.
Remove preprocessor conditionals
unifdef
is a program to remove
preprocessor #ifdef
statements from a C source file. See
also unifdef - selectively remove C preprocessor conditionals.
Web links
-
C FAQ list of tools
While most of this information is still relevant, note that some of the information is now out of date, particularly the recommendations under "a tool to track down malloc problems" (doesn't mention valgrind) and "a revision control or configuration management tool" (doesn't mention git, mercurial, subversion, etc.).