我想了解有关uint8_t与字符,可移植性,位操纵,最佳实践,事件状态等的情况。您是否了解关于该主题的良好阅读?如何使用uint8_t而不是char?
我希望做字节IO。但是当然char比uint8_t有更复杂和更微妙的定义;我认为这是引入stdint头的原因之一。
但是,我在多次使用uint8_t时遇到了问题。几个月前,曾经,因为iostreams没有为uint8_t定义。是不是有一个C++库做真正定义好的字节IO,即读写uint8_t?如果不是,我认为没有需求。为什么?
我最近头痛从这个代码失败编译茎:
uint8_t read(decltype(cin) & s)
{
char c;
s.get(c);
return reinterpret_cast<uint8_t>(c);
}
error: invalid cast from type 'char' to type 'uint8_t {aka unsigned char}'
为什么出错?如何使这项工作?
嗯。改用static_cast <>。 – 2014-10-05 12:49:34
'decltype(cin)'似乎很疯狂。你真的想'std :: istream&'那里,没有别的。 – 2014-10-05 12:51:12
static_cast通过可能使用运行时转换来保留数字值,如果我没有弄错,我想保留确切的位序列(我正在读取磁盘的MBR) – peterf 2014-10-05 12:56:15