preprocessor

The C preprocessor is a separate language, run before the C compiler.

With it, one defines

It has facilities to

header files

A header file exists to communicate type information from one programming unit to another

Also used to for commonly-used preprocessor definitions

Unless you follow some method, header mayhem will result. I strongly recommend that each header

This way, the order of header inclusion doesn't matter, and small changes in headers are least likely to result in problems with other files.

An otherwise empty source file that just includes the header should compile.

Another option is for no header ever to include another.