C preprocessor

<tool, programming>

(cpp) The standard Unix macro-expansion utility that runs as the first phase of the C compiler, cc. Cpp interprets lines beginning with "#" such as

 #define BUFFER_SIZE 256

as a textual assignment giving the symbol BUFFER_SIZE a value "256". Symbols defined with cpp are traditionally given upper case names to distinguish them from C identifiers. This symbol can be used later in the input, as in

 char input_buffer[BUFFER_SIZE];

This use of cpp to name global constants, rather than writing them inline, makes a program easier to read and maintain, especially if there is more than one occurrence of BUFFER_SIZE all of which must all have the same value.

Cpp macros can have parameters:

 #define BIT(n) (1<<(n))

This can be used with any appropriate actual argument:

 msb = BIT(nbits-1);

Cpp also supports conditional compilation with the use of

 #ifdef SYMBOL
 ...
 #else
 ...
 #endif

and

 #if EXPR
 ...
 #else
 ...
 #endif

constructs, where SYMBOL is a Cpp symbol which may or may not be defined and EXPR is an arithmetic expression involving only Cpp symbols, constants and C operators which Cpp can evaluate to a constant at compile time.

Decus cpp is a free implementation for VMS.

The most widely used C preprocessor today is the GNU CPP, distributed as part of GCC.

Last updated: 2001-12-31

Nearby terms:

cppcpppC preprocessorC Programmer's DiseaseC-Prologcproto

Try this search on Wikipedia, Wiktionary, Google, OneLook.



Not using Html Comment Box  yet?