Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
implicitly cast
According to source code below, please kindly help me to clear understanding whether where are the implicitly cast and they will cast to what type?

Warning: Unsuffixed integral literal implicitly cast to another type.

Source code
struct {
unsigned char multiple: 1;
unsigned char event: 1;
unsigned char checksum: 1;
unsigned char conditional: 1;
} flag;

void transmit(void)
if (flag.conditional == 1) { [color=red][b]

if (flag.conditional == 1) { [color=red][b]
and by using unsigned char in a bit field you are also violating rule 6.4
In C90 this code is making use of an extension (in C99 it is implementation-defined behavior; sentence 1385

I am guessing that the tool performing the check is not handling the semantics correctly. Even if unsigned char had the same size as unsigned int, the bit-field member would be promoted to type int (not unsigned int; sentence 669

I would complain to the tool vendor that they are incorrectly flagging this construct.
<r>Applications conformance testing: <URL url=""></URL></r>

Forum Jump:

Users browsing this thread: 1 Guest(s)