In the section “How the C Compiler Works” in Chapter 1, we outlined the eight steps in translation from C source to an executable program. In the first four of those steps, the C preprocessor prepares the source code for the actual compiler. The result is a modified source in which comments have been deleted and preprocessing directives have been replaced with the results of their execution.
This chapter describes the C preprocessing directives. Among these are directives to insert the contents of other source files; to identify sections of code to be compiled only under certain conditions; and to define macros, which are identifiers that the preprocessor replaces with another text.
Each preprocessor directive appears on a line by itself, beginning
with the character
#. Only space and
tab characters may precede the
character on a line. A directive ends with the first newline character
that follows its beginning. The shortest preprocessor directive is the
null directive. This directive
consists of a line that contains nothing but the character
#, and possibly comments or whitespace
characters. Null directives have no effect: the preprocessor removes
them from the source file.
If a directive doesn’t fit on one text line, you can end the line
with a backslash (
\) and continue the
directive on the next line. An example:
#define MacroName A long, \ long macro replacement value
The backslash must be the last character before the newline character. The ...