22-08-2014, 11:41 AM
Rule 10.1 of MISRA C:2004 prohibits implicit conversions for signed to unsigned and vice versa
There are no restrictions on explicit casts between simple signed and unsigned expressions ( and vice versa ). For example: Casting a complex expression requires the addition of an extra line.
There are no restrictions on explicit casts between simple signed and unsigned expressions ( and vice versa ). For example:
Code:
UINT_8 u8 = ....
SINT_8 s8 = ....
u8 = s8; /* violates 10.1 */
u8 = (UINT_8)s8; /* MISRA compliant */
Code:
SINT_8 stemp;
u8 = (UINT_8)(s8 + s8); /* violates 10.3 */
stemp = s8 + s8;
u8 = (UINT_8)stemp; /* MISRA compliant */
Posted by and on behalf of the MISRA C Working Group