GCC, the GNU Compiler Collection, contains a C preprocessor. A
preprocessor is a program that examines C code before it is compiled and
manipulates it in various ways. There are two main uses of a
preprocessor. One is to include external files, such as header files.
The other is to define macros, which are names (possibly with
arguments) that are expanded by the preprocessor into pieces of text or
C code. Macros that are expanded into text are usually displayed to the
user, but macros that are expanded into C code are executed with the
rest of the C code that surrounds them.