如果一台机器每字节> 8位,int8_t是什么?

Dav*_*vid 15 c++ c++11

我正在阅读C++ FAQ,它说

C++语言保证一个字节必须始终至少有8位

那对于这些<cstdint>类型意味着什么呢?

问题 - 如果我想要一个字节数组,我应该使用int8_tchar为什么?

Cat*_*lus 14

C++(和C也)定义intX_t(即确切的宽度整数类型)typedef为可选.因此,如果没有可寻址单元正好是8位宽,它就不会存在.

如果你想要一个字节数组,你应该使用char,因为sizeof char(signed charunsigned char)定义良好,总是1个字节.

  • 我该怎么处理具有不同大小字节的系统的IO?或者我不应该尝试? (4认同)
  • 等等,如果我没记错,sizeof char被定义为1,但是标准没有指定它是1个字节或其他什么 (2认同)
  • @Dave:通常,你没有,因为现在绝大多数计算机都使用8位字节. (2认同)
  • 根据计算机体系结构,一个字节可能包含8位或更多位,确切的数字记录在CHAR_BIT中.所以char并不总是8位 (2认同)