uint8_t
到底是做什么的?是否仍然无法与unsigned char
区分并且不能用于重载函数?
我在这篇文章中找到了许多答案:std::cout deal with uint8_t as a character
所以我已经完全编辑了问题,并重新命名了问题。
答案 0 :(得分:4)
在所有8位字节的系统上,它们是char
的变体。这包括例如的类型别名。 uint8_t
(在这种系统上是unsigned char
的类型别名)。
无论您使用哪种类型别名,char
(以及unsigned char
和signed char
(是的,这是三种不同的类型))都将被视为字符由流输出运算符<<
。
如果您要打印任何基于char
的类型的整数值,则需要将其强制转换为int
。如
std::cout << static_cast<unsigned>(my_uint8_t_var) << '\n';
请注意:有些 系统没有8位字节。在这样的系统上,像uint8_t
这样的类型别名是不可能的,并且不存在。如果您看到例如this fixed-width integer reference,您会看到确切的固定宽度整数类型是可选的。
答案 1 :(得分:0)
uint8_t
是8位无符号整数。用于存储0到255之间的值。它通常与无符号char
具有相同的范围,但它是cstdint
可用的几种显式大小的整数类型之一