Microchip Technology SW006023-2N Data Sheet

Page of 238
MPLAB
®
 XC32 C/C++ Compiler User’s Guide
DS51686E-page 196
 2012 Microchip Technology Inc.
18.10 ARRAYS AND POINTERS
18.11 HINTS
ISO Standard:
“The result of converting a pointer to an integer or vice versa (C90 
6.3.4, C99 6.3.2.3).”
Implementation:
A cast from an integer to a pointer or vice versa results uses the binary 
representation of the source type, reinterpreted as appropriate for the 
destination type.
If the source type is larger than the destination type, the Most Signifi-
cant bits are discarded. When casting from a pointer to an integer, if the 
source type is smaller than the destination type, the result is sign 
extended. When casting from an integer to a pointer, if the source type 
is smaller than the destination type, the result is extended based on the 
signedness of the source type.
ISO Standard:
“The size of the result of subtracting two pointers to elements of the 
same array (C90 6.3.6, C99 6.5.6).”
Implementation:
32-bit signed integer.
ISO Standard:
“The extent to which suggestions made by using the register stor-
age-class specifier are effective (C90 6.5.1, C99 6.7.1).”
Implementation:
The register storage class specifier generally has no effect.
ISO Standard:
“The extent to which suggestions made by using the inline function 
specifier are effective (C99 6.7.4).”
Implementation:
If 
-fno-inline
 or 
-O0
 are specified, no functions will be inlined, 
even if specified with the 
inline
 specifier. Otherwise, the function 
may or may not be inlined dependent on the optimization heuristics of 
the compiler.