pmccabe processes the named files, or standard input if none are
named, calculating statistics including McCabe cyclomatic complexity
for each function found.  The files are expected to be either C (ANSI
or K&R) or C++.

pmccabe ignores all cpp preprocessor directives - calculating the
complexity of the appearance of the code rather than the complexity
after the preprocessor mangles the code.  This is especially important
since simple things like getchar(3) expand into macros which increase
complexity.
