C/C++ Programmer's Guide (G06.25+)
HP C Implementation-Defined Behavior
HP C/C++ Programmer’s Guide for NonStop Systems—429301-008
A-5
G.3.10 Qualifiers
Each member of a structure is aligned on the boundary required by its type. Padding is
added between members as necessary.
A plain int bit field is a signed int bit field.
Bits within an integer bit field are allocated most significant bit first.
A bit field cannot straddle a word boundary. If the bit field is a member of a structure
with alignment SHARED2, and the size of the bit field is no greater than 16 bits, it is
further restricted not to straddle a half word boundary.
The values of an enumeration declaration are type int.
G.3.10 Qualifiers
Each time a value is needed from a volatile object, a read access is made to it. Each
time the value needs to be written, a write access is made. This rule ensures that
volatile objects are accessed in the same way as in the abstract semantics. However,
there is one exception: when a volatile bit field is written to, hardware constraints may
force a read to occur before the write, in order to read the parts of the storage unit that
are not changed in the write. Volatile bit fields should be used with caution.
G.3.11 Declarators
An arithmetic, structure, or union type can have 12 declarators modifying it. The
maximum number of declarators allowed is limited only by the amount of available
memory at compilation time.
G.3.12 Statements
The maximum number of case values allowed in a switch statement is limited only by
the amount of available memory at compilation time.
G.3.13 Preprocessing Directives
The value of a single-character character constant in a constant expression that
controls conditional inclusion matches the value of the same character constant in the
execution character set. A single-character character constant is an unsigned
character and therefore cannot be negative.
When the include file is specified as "filename":
•
If the compiler is running in the Guardian environment, the current subvolume is
searched first
•
If the compiler is running in the OSS environment, the current directory is searched
first