07.04.2013 Views

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

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!