Standard C++ Library Reference ISO/IEC (VERSION3)

The expression defined X, or defined (X), is replaced by 1 if X is defined as a
macro, otherwise 0.
You cannot write the sizeof or type cast operators. (The translator expands all macro
names, then replaces each remaining name with 0, before it recognizes keywords.)
The translator may be able to represent a broader range of integers than the target
environment.
The translator represents type int the same as long, and unsigned int the same as unsigned
long.
The translator can translate character constants to a set of code values different from the
set for the target environment.
An include directive includes the contents of a standard header or another source file in a
translation unit. The contents of the specified standard header or source file replace the include
directive. Following the directive name include, write one of the following:
a standard header name between angle brackets
a filename between double quotes
any other form that expands to one of the two previous forms after macro replacement
A line directive alters the source line number and filename used by the predefined macros
__FILE__ and __FILE__. Following the directive name line, write one of the following:
a decimal integer (giving the new line number of the line following)
a decimal integer as before, followed by a string literal (giving the new line number and
the new source filename)
any other form that expands to one of the two previous forms after macro replacement
Preprocessing translates each source file in a series of distinct phases. The first few phases of
translation: terminate each line with a newline character (NL), convert trigraphs to their
single-character equivalents, and concatenate each line ending in a backslash (\) with the line
following. Later phases process include directives, expand macros, and so on to produce a
translation unit. The translator combines separate translation units, with contributions as
needed from the Standard C library, at link time, to form the executable program.
An undef directive removes a macro definition. You might want to remove a macro definition
so that you can define it differently with a define directive or to unmask any other meaning
given to the name. The name whose definition you want to remove follows the directive name
undef. If the name is not currently defined as a macro, the undef directive has no effect.
See also the Table of Contents and the Index.
Copyright © 1989-2001 by P.J. Plauger and Jim Brodie. All rights reserved.