7.1.2 The Common C Interface

The Common C Interface (CCI) supplements the C Language Standard, such as ISO/IEC 9899:1999, and makes it easier for programmers to achieve consistent outcomes on all Microchip devices when using MPLAB XC C compilers.

It delivers the following improvements, all designed with portability in mind.

Refinement of the C Language Standard The CCI documents specific behavior for some code in which actions are implementation-defined behavior under the C Language Standard. For example, the result of right-shifting a signed integer is fully defined by the CCI. Note that many implementation-defined items that closely couple with device characteristics, such as the size of an int, are not defined by the CCI.
Consistent syntax for non-standard extensions The CCI non-standard extensions are mostly implemented using keywords with a uniform syntax. They replace keywords, macros and attributes that are the native compiler implementation. The interpretation of the keyword can differ across each compiler, and any arguments to the keywords can be device specific.
Coding guidelines The CCI can indicate advice on how code should be written so that it can be ported to other devices or compilers. While you may choose not to follow the advice, it will not conform to the CCI.