在C++中是否存在实际的8位整数数据类型

cxfofazt  于 11个月前  发布在  其他
关注(0)|答案(2)|浏览(152)

在c++中,特别是cstdint头文件中,有一些8位整数的类型是带有typedef的char数据类型。有人能建议一个真正的8位整数类型吗?

zbwhf8kr

zbwhf8kr1#

是的,你是对的。int8_tuint8_t在1字节为8位的平台上是typedefchar。在不是8位的平台上,将给出适当的定义。
下面的答案是基于假设char是8 bits
char保存1个字节,根据实现可能是signedunsigned
所以int8_tsigned charuint8_tunsigned char,但是使用int8_t/uint8_t作为实际的8位整数是安全的,而不太依赖于实现。
从实现者的Angular 来看,typedef fing(其中char为8位)是有意义的。
看到这一切,使用int8_tuint8_t作为真实的8位整数是安全的。

ddhy6vgd

ddhy6vgd2#

__int8__int16__int32__int64默认数据类型(这也适用于C编程语言),不使用<cstdint>头,也没有__int128用于Microsoft特定的(很多答案是在here,甚至内部函数__shiftleft128__shiftright128使用两个__int64例如)。
int8_tchar也适用于无符号类型,例如,uint8_tunsigned char

相关问题