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



我正在阅读c++ FAQ,上面写着

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

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

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

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

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

添加Cat Plus Plus已经说过的类型(可选),您可以使用以下命令来测试它是否存在:

#ifdef INT8_MAX
//  type int8_t exists.
#endif

或更可能:

#ifndef INT8_MAX
#error Machines with bytes that don't have 8 bits aren't supported
#endif

最新更新