Word:

C preprocessor

(tool, programming)C preprocessor - (cpp) The standard Unix macro-expansion utility run 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 constants, rather than writing these magic numbers 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);

Note the parentheses around the "n" in the definition of BIT. Without these, operator precedence might mean that the expression substituted in place of n might not be interpreted correctly (though the example above would be OK).

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.
Browse
Byzantine style
Byzantinism
Byzantium
bz
BZR
BZT
bzzzt, wrong
C
C (ANSI)
C and W
C battery
C Beautifier
C clef
C compiler
C horizon
C Language Integrated Production System
-- C preprocessor --
C program
C Programmer's Disease
C Q D
C sharp
C shell
C spring
C with Classes
C#
C&T
C'est le crime qui fait la honte
c't
C*
C++
C++Linda
C++SIM
C+-
Definitions Index: # A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

About this site and copyright information - Online Dictionary Home - Privacy Policy