(cpp.info)Top


Next: Global Actions Up: (DIR)

The C Preprocessor
******************

   The C preprocessor is a "macro processor" that is used automatically
by the C compiler to transform your program before actual compilation.
It is called a macro processor because it allows you to define "macros",
which are brief abbreviations for longer constructs.

   The C preprocessor provides four separate facilities that you can
use as you see fit:

   * Inclusion of header files.  These are files of declarations that
     can be substituted into your program.

   * Macro expansion.  You can define "macros", which are abbreviations
     for arbitrary fragments of C code, and then the C preprocessor will
     replace the macros with their definitions throughout the program.

   * Conditional compilation.  Using special preprocessor commands, you
     can include or exclude parts of the program according to various
     conditions.

   * Line control.  If you use a program to combine or rearrange source
     files into an intermediate file which is then compiled, you can
     use line control to inform the compiler of where each source line
     originally came from.

   C preprocessors vary in some details.  This manual discusses the GNU
C preprocessor, the C Compatible Compiler Preprocessor.  The GNU C
preprocessor provides a superset of the features of ANSI Standard C.

   ANSI Standard C requires the rejection of many harmless constructs
commonly used by today's C programs.  Such incompatibility would be
inconvenient for users, so the GNU C preprocessor is configured to
accept these constructs by default.  Strictly speaking, to get ANSI
Standard C, you must use the options `-trigraphs', `-undef' and
`-pedantic', but in practice the consequences of having strict ANSI
Standard C make it undesirable to do this.  Note: Invocation.

* Global Actions
Actions made uniformly on all input files.
* Commands
General syntax of preprocessor commands.
* Header Files
How and why to use header files.
* Macros
How and why to use macros.
* Conditionals
How and why to use conditionals.
* Combining Sources
Use of line control when you combine source files.
* Other Commands
Miscellaneous preprocessor commands.
* Output
Format of output from the C preprocessor.
* Invocation
How to invoke the preprocessor; command options.
* Concept Index
Index of concepts and terms.
* Index
Index of commands, predefined macros and options.

automatically generated by info2www