There are certain compiler limits inherent to the compiler:
Procedure or Function definitions can be nested to a level of 32. This can be changed by changing the maxnesting constant.
Procedure or Function can have up to 255 parameters.
The maximum nesting level of pre-processor macros is 16. This can be changed by changing the value of max_macro_nesting.
Arrays are limited to 2 GBytes in size in the default (32-bit) processor mode.
For processor specific compiler limitations refer to the Processor Limitations section in this guide (6.8).