Microchip Technology SW006023-2N Data Sheet
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).”
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.
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).”
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).”
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).”
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.
the compiler.