如何使用 char 来获取位的状态,稍后我需要将 char 变量增加到 1
char CValue = 0;
CValue = (dataPresent & BINARYDATA_MASK)? 1:0; // code breaks here bcz of conditional statment
CValue +=1;
如何使用 char 来获取位的状态,稍后我需要将 char 变量增加到 1
char CValue = 0;
CValue = (dataPresent & BINARYDATA_MASK)? 1:0; // code breaks here bcz of conditional statment
CValue +=1;
在优化的构建中,编译器可以将其替换为
char CValue = (dataPresent & BINARYDATA_MASK)? 2: 1;
因为优化后的代码中只有一行,所以您不会看到调试器在单步执行时多次停止。
我不确定你为什么在 a 中存储布尔值char
,但是(假设你真的想用dataPresent
and进行二进制 AND 运算BINARYDATA_MASK
- 因为BINARYDATA_MASK
是一个宏,所以它被定义为一个常量并且不需要参数)
char CValue = 0;
CValue = static_cast<char>((dataPresent & BINARYDATA_MASK) ? 1 : 0);
CValue +=1;
应该摆脱您看到的警告,同时保持所需的功能。
或者,由于 CValue 已设置为 0,您可以将代码修改为:
char CValue = 0;
if (dataPresent & BINARYDATA_MASK)
{
CValue = 1;
}
CValue += 1;
听起来你有一个错字,你没有在你的问题中显示。