Microchip Technology SW006022-1N Data Sheet

Page of 338
Implementation-Defined Behavior
 2012 Microchip Technology Inc.
DS52071B-page 215
A.7
FLOATING POINT
Implementation-Defined Behavior for Floating Point is covered in section G.3.6 of the 
ANSI C Standard.
Is the scaled value of a floating constant that is in the range of the representable value 
for its type, the nearest representable value, or the larger representable value immedi-
ately adjacent to the nearest representable value, or the smallest representable value 
immediately adjacent to the nearest representable value? (ISO 6.1.3.1)
The nearest representable value.
The following table describes the amount of storage and range of various types of 
floating point numbers: (ISO 6.1.2.5)
What is the direction of truncation, when an integral number is converted to a 
floating-point number, that cannot exactly represent the original value? (ISO 6.2.1.3)
Down.
What is the direction of truncation, or rounding, when a floating-point number is 
converted to a narrower floating-point number? (ISO 6.2.1.4)
Down.
A.8
ARRAYS AND POINTERS
Implementation-Defined Behavior for Arrays and Pointers is covered in section G.3.7 
of the ANSI C Standard.
What is the type of the integer required to hold the maximum size of an array that is, 
the type of the size of operator, size_t? (ISO 6.3.3.4, ISO 7.1.1)
unsigned int
.
What is the size of integer required for a pointer to be converted to an integral type? 
(ISO 6.3.4)
16 bits.
What is the result of casting a pointer to an integer, or vice versa? (ISO 6.3.4)
The mapping is the identity function.
What is the type of the integer required to hold the difference between two pointers to 
members of the same array, ptrdiff_t? (ISO 6.3.6, ISO 7.1.1)
unsigned int
.
TABLE A-3:
FLOATING-POINT TYPES
Designation
Size (bits)
Range
float
32
1.175494e-38 … 3.40282346e+38
double
*
32
1.175494e-38 … 3.40282346e+38
long double
64
2.22507385e-308 … 1.79769313e+308
* double is equivalent to long double if -fno-short-double is used.