为什么二进制值和字符之间的转换不一致
Why am I getting inconsistent conversions between a binary value and a character?
使用arduino。我在一个过程中运行两次的函数中有以下代码:
int hours = 7;
char hour = hours+'0';
debug(&hour);
char hour2 = hours+'0';
debug(&hour2);
debug
的功能是:
void debug(char message[]) {
if (debugEnabled == true) {
Serial.println(message);
}
}
全局debugEnabled
标志被初始化为true
。
每次整个过程运行时,我都会得到以下输出(因此执行第一个代码块两次):
7
7
72
7
我看不出有什么理由在第二次写入第一个变量时得到72,尤其是每次都正确打印hour2
变量。
任何关于可能出现问题或如何进一步调试的建议都将不胜感激。
因为您将单个字符视为字符串。C中的字符串需要以一个额外的' '
字符结尾。所有字符串处理函数都将继续,直到它们找到这个终止符为止,并且将超出您可能拥有的任何数组限制,并产生意外和未定义的结果。
相关文章:
- 大于65535的C++数组[size]引发不一致的溢出
- Visual C++(VS2017)中用户定义的转换不明确
- 在 C++(和 C)中进行类型转换时明显不一致
- C++通常的算术转换不转换
- 字符类型转换不兼容
- 填充上编译器生成的复制构造函数之间的不一致
- 犰狳的 print() 方法和 cout 在从 Rcpp 调用时顺序不一致
- CreateDIBSection为同一图像返回不一致的位图位值
- 在 Qml 中从 QSqlTableModel 中删除单行时视图不一致
- 模板参数推导不一致
- 声明中不一致的no是否违反ODR?
- 如何删除分支因子不一致的树,最大为 30,40
- 用户定义的转换不能在C++中使用static_cast
- 从 C++ 函数与 Python 函数返回的不一致值用于偏斜正态分布
- 从 C 字符串构造 std::string 与从另一个 std::string 构造 std::string 不一致
- 这种比较是否不一致(或者存在其他问题)?
- 以下可变参数模板行为是否不一致?
- RapidJSON 在转换为字符串时产生不一致的结果
- 为什么二进制值和字符之间的转换不一致
- 与GCC/MSVC中的lambda转换构造函数不一致