Include files
Simple rule: include files should never include include files.
If instead they state (in comments or implicitly) what files they need to have
included first, the problem of deciding which files to include
is pushed to the user (programmer) but in a way that's easy to handle
and that, by construction, avoids multiple inclusions.
Multiple inclusions are a bane of systems programming.
It's not rare to have files included five or more times to
compile a single C source file.
The Unix
/usr/include/sys
stuff is terrible this way.
There's a little dance involving
#ifdef's
that can prevent a file being read twice, but it's usually done
wrong in practice -- the
#ifdef's
are in the file itself, not the file that includes it.
The result is often thousands of needless lines of code
passing through the lexical analyzer, which is (in good compilers)
the most expensive phase.
Just follow the simple rule.
Contents
Function pointers