Microchip Technology SW006022-2N Data Sheet

Page of 338
MPLAB
®
 XC16 C Compiler User’s Guide
DS52071B-page 216
 2012 Microchip Technology Inc.
A.9
REGISTERS
Implementation-Defined Behavior for Registers is covered in section G.3.8 of the ANSI 
C Standard.
To what extent does the storage class specifier register actually effect the storage 
of objects in registers? (ISO 6.5.1)
If optimization is disabled, an attempt will be made to honor the register storage 
class; otherwise, it is ignored.
A.10 STRUCTURES, UNIONS, ENUMERATIONS AND BIT FIELDS
Implementation-Defined Behavior for Structures, Unions, Enumerations and Bit Fields 
is covered in sections A.6.3.9 and G.3.9 of the ANSI C Standard.
What are the results if a member of a union object is accessed using a member of a 
different type? (ISO 6.3.2.3)
No conversions are applied.
Describe the padding and alignment of members of structures? (ISO 6.5.2.1)
Chars are byte-aligned. All other objects are word-aligned.
What is the equivalent type for a plain int bit field? (ISO 6.5.2.1)
User defined. By default, signed int bit field. May be made an unsigned int bit 
field using a command line option.
What is the order of allocation of bit fields within an int? (ISO 6.5.2.1)
Bits are allocated from least-significant to most-significant.
Can a bit field straddle a storage-unit boundary? (ISO 6.5.2.1)
Yes.
Which integer type has been chosen to represent the values of an enumeration type? 
(ISO 6.5.2.2)
int
.
A.11
QUALIFIERS
Implementation-Defined Behavior for Qualifiers is covered in section G.3.10 of the 
ANSI C Standard.
Describe what action constitutes an access to an object that has volatile-qualified type? 
(ISO 6.5.3)
If an object is named in an expression, it has been accessed.
A.12 DECLARATORS
Implementation-Defined Behavior for Declarators is covered in section G.3.11 of the 
ANSI C Standard.
What is the maximum number of declarators that may modify an arithmetic, structure, 
or union type? (ISO 6.5.4)
No limit.