我正在阅读c++ FAQ,上面写着
c++语言保证一个字节必须至少有8位
那么这对于<cstdint>
类型意味着什么呢?
侧面问题-如果我想要一个字节数组我应该使用int8_t
或char
,为什么?
c++(以及C)定义intX_t
(即确切宽度整数类型)类型为可选。因此,如果没有正好8位宽的可寻址单元,它就不会存在。
如果你想要一个字节数组,你应该使用char
,因为sizeof char
(以及signed char
和unsigned 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