MPLAB C Compiler for PIC24 MCUs and dsPIC DSCs ... - Microchip
MPLAB C Compiler for PIC24 MCUs and dsPIC DSCs ... - Microchip
MPLAB C Compiler for PIC24 MCUs and dsPIC DSCs ... - Microchip
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
16-Bit C <strong>Compiler</strong> User’s Guide<br />
ISO C restricts enumerator values to range of ‘int’<br />
The range of enumerator values must not exceed the range of the int type.<br />
ISO C89 <strong>for</strong>bids compound literals<br />
Compound literals are not valid in ISO C89.<br />
ISO C89 <strong>for</strong>bids mixed declarations <strong>and</strong> code<br />
Declarations should be done first be<strong>for</strong>e any code is written. It should not be mixed in<br />
with the code.<br />
ISO C90 does not support ‘[*]’ array declarators<br />
Variable length arrays are not supported in ISO C90.<br />
ISO C90 does not support complex types<br />
Complex types, such as __complex__ float x, are not supported in ISO C90.<br />
ISO C90 does not support flexible array members<br />
A flexible array member is a new feature in C99. ISO C90 does not support it.<br />
ISO C90 does not support ‘long long’<br />
The long long type is not supported in ISO C90.<br />
ISO C90 does not support ‘static’ or type qualifiers in parameter array<br />
declarators<br />
When using an array as a parameter to a function, ISO C90 does not allow the array<br />
declarator to use ‘static’ or type qualifiers.<br />
ISO C90 does not support the ‘char’ ‘function’ <strong>for</strong>mat<br />
ISO C does not support the specification character ‘char’ <strong>for</strong> the specified function<br />
<strong>for</strong>mat.<br />
ISO C90 does not support the ‘modifier’ ‘function’ length modifier<br />
The specified modifier is not supported as a length modifier <strong>for</strong> the given function.<br />
ISO C90 <strong>for</strong>bids variable-size array ‘name’<br />
In ISO C90, the number of elements in the array must be specified by an integer<br />
constant expression.<br />
L<br />
label ‘identifier’ defined but not used<br />
The specified label was defined, but not referenced.<br />
large integer implicitly truncated to unsigned type<br />
An integer constant value appears in the source code without an explicit unsigned<br />
modifier, yet the number cannot be represented as a signed int; there<strong>for</strong>e, the compiler<br />
automatically treats it as an unsigned int.<br />
left-h<strong>and</strong> oper<strong>and</strong> of comma expression has no effect<br />
One of the oper<strong>and</strong>s of a comparison is a promoted ~unsigned, while the other is<br />
unsigned.<br />
left shift count >= width of type<br />
Shift counts should be less than the number of bits in the type being shifted. Otherwise,<br />
the shift is meaningless, <strong>and</strong> the result is undefined.<br />
left shift count is negative<br />
Shift counts should be positive. A negative left shift count does not mean shift right;<br />
it is meaningless.<br />
DS51284H-page 192 © 2008 <strong>Microchip</strong> Technology Inc.