MISRA Discussion Forums

Full Version: Mixing plain char and non-plain char within ?:
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
The commentary for rules #6.1 and #6.2 state,
Quote:[T]he second and third operands of the ternary conditional operator may both be of plain char type.
Do these rules permit one of these two operands to have plain char type and the other to have signed char or unsigned char type?

For that matter, what about the mixing of such operands with operators considered acceptable for use with objects of plain char type? For example, do the rules permit the following:
Code:
void function( char a, signed char b )
    {
    if( a == b )
        { /*  do something  */ }
    }
?
These rules do not preclude operating on a mixture of plain char and signed/unsigned char types using assignment, equality or conditional operators. However, this is not recommended and is likely to be precluded in a future revision of the MISRA C Guidelines.