10.6.3 Function Pointers
The MPLAB XC16 C Compiler fully supports pointers to functions, which allows functions to be called indirectly. Function pointers are always 16 bits wide.
Because function pointers are only 16 bits wide, these pointers cannot
point beyond the first 64K of Flash. If the address of a function that is allocated beyond
the first 64K of Flash is taken, the linker will arrange for a handle
section to be generated. The handle
section will always be allocated
within the first 64K. Each handle provides a level of indirection which allows 16-bit
pointers to access the full range of Flash. This operation may be disable with the
--no-handles
linker option.