我有C++ 代码,其中包含:
struct Struct
{
uint8_t varA : 1;
uint8_t varB : 1;
uint8_t varC : 1;
};
当我在其上运行Klocwork 10时,我收到警告:
CWARN.SIGNEDBIT (4:Review) Analyze
Bit field 'varA' has one bit and is signed
此结构中的其他变量也是如此。 uint8_t 是 unsigned char typedef。当我尝试使用签名字符时,我得到一个错误,而不是像这里这样的警告。使用unsigned int可以解决问题,但我想改用char。
我的问题是:为什么会出现此警告以及如何解决?