C++ int8和uint8真的是整数吗?它们有什么用?

C++ int8和uint8真的是整数吗?它们有什么用?,c++,C++,uint8\u t的具体用途是什么?如果它与无符号字符无法区分,并且不能用于重载函数 我在这篇文章中找到了很多答案: 所以我重新编辑了整个问题,并重新命名了这个问题。uint8\u t是一个8位无符号整数。用于存储0到255之间的值。它通常与无符号的char具有相同的范围,但它是cstdint提供的几种显式大小的整数类型之一。在所有具有8位字节的系统上,它们都是char的变体。这包括类型别名,例如uint8_t(这是此类系统上无符号字符的类型别名) 无论您使用何种类型的别名,char(和unsi

uint8\u t
的具体用途是什么?如果它与
无符号字符
无法区分,并且不能用于重载函数

我在这篇文章中找到了很多答案:


所以我重新编辑了整个问题,并重新命名了这个问题。

uint8\u t
是一个8位无符号整数。用于存储0到255之间的值。它通常与无符号的
char
具有相同的范围,但它是
cstdint
提供的几种显式大小的整数类型之一。在所有具有8位字节的系统上,它们都是
char
的变体。这包括类型别名,例如
uint8_t
(这是此类系统上
无符号字符的类型别名)


无论您使用何种类型的别名,
char
(和
unsigned char
signed char
(是的,这是三种不同的类型))都将被流输出操作符视为字符
请用大量重复的字符阅读:,…不,它不是。我真的认为我们应该允许在其他条件下超越C++中的长度和符号来重载函数。编译器可能会更聪明。关键是你不能在不同的类型别名上重载函数,你需要有一个。不要编辑这个问题来完全修改它的含义。如果你想了解便携性的目的,可以问另一个问题。但是强制转换困扰着我,我想静态强制转换(my_uint8_t_var)会调整我的变量大小,在处理文件字节或vectors@Maelstrom强制转换不会更改变量本身的大小、类型或值,只有强制转换的结果是无符号的。当然,您可以选择原始数据或原始数据,但这将是按位复制,而不是转换为值的文本表示形式。
std::cout << static_cast<unsigned>(my_uint8_t_var) << '\n';