在 <stdint.h> 中定义的 uint8_t 其实为 unsigned char

来源:互联网 发布:java中如何记录日志 编辑:程序博客网 时间:2024/06/03 04:09

所以本质上uint8_t 型的变量是字符,而不是整数!这种差异对于算术运算可能没什么差别,但是在有些情况会导致一些不易察觉的错误。比如我们经常使用 std::istringstream 从 std::string 中读数据

std::string wholeStr("Haha 1");  std::istringstream sstr(str, std::istringstream::in);  std::string str;  uint8_t num;  sstr >> str >> num;  

这时 num 的值其实是字符’1’,而不是数字1!

原创粉丝点击