26.1 Preprocessing Overview

GNU C performs preprocessing on each line of a C program as the first stage of compilation. Preprocessing operates on a line only when it contains a preprocessing directive or uses a macro—all other lines pass through preprocessing unchanged.

Here are some jobs that preprocessing does. The rest of this chapter gives the details.

Except for expansion of predefined macros, all these operations happen only if you use preprocessing directives to request them.

Preprocessing does not recognize the operators of the C language itself, outside of the operand of the #if directive (see The #if directive). However, it supports three preprocessing operators of its own: # (see Stringification), ## (see Concatenation) and defined (see The #if directive).