Implementation Details; Implementation-Defined Behavior; Implementation Limits - Red Hat ENTERPRISE LINUX 3 - USING CPP Using Instructions

Using cpp, the c preprocessor
Hide thumbs Also See for ENTERPRISE LINUX 3 - USING CPP:
Table of Contents

Advertisement

Here we document details of how the preprocessor's implementation affects its user-visible behavior.
You should try to avoid undue reliance on behavior described here, as it is possible that it will change
subtly in future implementations.
Also documented here are obsolete features and changes from previous versions of GNU CPP.
11.1. Implementation-defined behavior
This is how GNU CPP behaves in all the cases which the C standard describes as implementation-
defined. This term means that the implementation is free to do what it likes, but must document its
choice and stick to it.
The mapping of physical source file multi-byte characters to the execution character set.
Currently, GNU cpp only supports character sets that are strict supersets of ASCII, and performs
no translation of characters.
Non-empty sequences of whitespace characters.
In textual output, each whitespace sequence is collapsed to a single space. For aesthetic reasons,
the first token on each non-directive line of output is preceded with sufficient spaces that it appears
in the same column as it did in the original source file.
The numeric value of character constants in preprocessor expressions.
The preprocessor and compiler interpret character constants in the same way; escape sequences
such as
are given the values they would have on the target machine.
\a
Multi-character character constants are interpreted a character at a time, shifting the previous result
left by the number of bits per character on the host, and adding the new character. For example, 'ab'
on an 8-bit host would be interpreted as 'a' * 256 + 'b'. If there are more characters in the constant
than can fit in the widest native integer type on the host, usually a
ignored and a diagnostic is given.
Source file inclusion.
For a discussion on how the preprocessor locates header files, Refer to Section 2.2 Include Opera-
tion.
Interpretation of the filename resulting from a macro-expanded
Refer to Section 2.5 Computed Includes.
Treatment of a
#pragma
No macro expansion occurs on any
Note that GCC does not yet implement any of the standard pragmas.

11.2. Implementation limits

GNU CPP has a small number of internal limits. This section lists the limits which the C standard
requires to be no lower than some minimum, and all the others we are aware of. We intend there to be
as few limits as possible. If you encounter an undocumented or inconvenient limit, please report that
to us as a bug. (See the section on reporting bugs in the GCC manual.)
directive that after macro-expansion results in a standard pragma.
#pragma

Implementation Details

#include
directive line, so the question does not arise.
Chapter 11.
, the excess characters are
long
directive.

Advertisement

Table of Contents
loading

This manual is also suitable for:

Enterprise linux 3

Table of Contents