DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(cpp.info) Top

Info Catalog (DIR) Top (cpp.info) Global Actions
 
 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 preprocessing directives,
      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.   Invocation.
 
    The C preprocessor is designed for C-like languages; you may run into
 problems if you apply it to other kinds of languages, because it assumes
 that it is dealing with C.  For example, the C preprocessor sometimes
 outputs extra white space to avoid inadvertent C token concatenation,
 and this may cause problems with other languages.
 

Menu

 
* Global Actions    Actions made uniformly on all input files.
* Directives        General syntax of preprocessing directives.
* 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 Directives  Miscellaneous preprocessing directives.
* 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 directives, predefined macros and options.
 
Info Catalog (DIR) Top (cpp.info) Global Actions
automatically generated byinfo2html