将布尔值转换为字符会产生错误和代码中断
convert bool to char gives error and code break
如何使用
字符来获取位的状态,稍后我需要将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;
由于优化的代码中只有一行,因此在单步执行时不会看到调试器多次停止。
我不确定为什么要在char
中存储布尔值,但是(假设您真的想对dataPresent
和BINARYDATA_MASK
进行二进制 AND 操作 - 并且由于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;
听起来你有一个错别字,你没有在你的问题中显示。
相关文章:
- 错误处理.将系统错误代码映射到泛型
- 为什么我在使用void函数时得到错误代码C2276
- 尝试链接我的着色器时,我收到错误代码"error c5145 must write to gl_position"
- 逻辑运算符上出现错误代码 a')'
- 'val' Arduino 错误代码之前的预期'('
- 我在贪吃蛇游戏中收到了错误代码 -1073741571
- 根据 GetLastError 直接写入磁盘会导致错误代码 5
- 当我选择大于 720 的矩阵大小时,程序退出并显示错误代码.可能是什么原因?
- 创建进程 API 失败,在窗口 122 上出现错误代码 10
- 使用另一个函数调用一个函数(都在类中)时出现问题.没有错误代码C++
- 当命令失败时,gzip 会在 C++ 中返回错误代码吗?
- 从 C++ 调用 cURL 命令会返回意外的错误代码,如 1792 和 6656
- WSALookupServiceBegin() 上的错误代码 10022(无效的 arugment)
- C++ Schannel POST 400 错误代码错误请求
- openCL-创建子缓冲区返回错误代码13
- 更新了Runge-Kutta(RK4)C++错误代码中的二阶DE
- 获取有关使用未初始化内存的错误代码
- 排序程序的意外错误代码
- 正在将DJI错误代码记录到流中
- 来自API的错误代码..处理什么是好的做法