Page 1 of 1

Mixing plain char and non-plain char within ?:

Posted: Wed Mar 24, 2010 2:03 pm
by gs
The commentary for rules #6.1 and #6.2 state,
[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: Select all

void function( char a, signed char b )
    if( a == b )
        { /*  do something  */ }

Re: Mixing plain char and non-plain char within ?:

Posted: Thu May 13, 2010 10:12 am
by misra-c
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.