Cscope is nice for navigating large C code bases as it generates an index (like ctags
does), so you have an upfront cost to generate the index, but it can give you a list of search results almost instantly (except if you are searching for certain things like literal strings).
Unlike ctags
, Cscope
can be used via an interactive textual user interface, so you can get good results without having to move to another editor; if you do want to move to another editor/IDE, Cscope
integrates with Emacs
at least.
The "screen shot" at the Cscope page linked above will give you an idea of the kind of searches you can perform and the results you get; in that screen shot, hitting one of the digits 0 through 6 would open your editor (selected via an environment variable) on the specified file, at the correct line if possible.
Edit: Doxygen can also be nice for understanding C code bases. It will give you a set of static HTML files and will create links wherever names it recognises (e.g. functions) appear. It is best if the code base has Doxygen-style /** ... */ comments, as Doxygen can format these specially, but even without these, you can configure Doxygen to generate pages with the source code for each file marked up with links to other functions, etc. If you use Emacs, Doxymacs is useful - when the cursor is in the middle of an identifier, you can use the key sequence C-c d ? to load up your web browser with the Doxygen documentation for that identifier.