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