GNU Info

Info Node: (cpp-295.info)Directives

(cpp-295.info)Directives


Next: Header Files Prev: Global Actions Up: Top
Enter node , (file) or (file)node

Preprocessing Directives
========================

   Most preprocessor features are active only if you use preprocessing
directives to request their use.

   Preprocessing directives are lines in your program that start with
`#'.  The `#' is followed by an identifier that is the "directive name".
For example, `#define' is the directive that defines a macro.
Whitespace is also allowed before and after the `#'.

   The set of valid directive names is fixed.  Programs cannot define
new preprocessing directives.

   Some directive names require arguments; these make up the rest of
the directive line and must be separated from the directive name by
whitespace.  For example, `#define' must be followed by a macro name
and the intended expansion of the macro.  Note: Simple Macros.

   A preprocessing directive cannot be more than one line in normal
circumstances.  It may be split cosmetically with Backslash-Newline,
but that has no effect on its meaning.  Comments containing Newlines
can also divide the directive into multiple lines, but the comments are
changed to Spaces before the directive is interpreted.  The only way a
significant Newline can occur in a preprocessing directive is within a
string constant or character constant.  Note that most C compilers that
might be applied to the output from the preprocessor do not accept
string or character constants containing Newlines.

   The `#' and the directive name cannot come from a macro expansion.
For example, if `foo' is defined as a macro expanding to `define', that
does not make `#foo' a valid preprocessing directive.


automatically generated by info2www version 1.2.2.9