在GCC编译器上,可以使用
__int8
、__int16
、__int32
等类型来表示具有特定大小的整数。这对于需要处理低级数据结构(如自定义文件格式、硬件控制数据结构等)的应用程序非常有用。__int8
、__int16
、__int32
等类型来表示具有特定大小的整数。这对于需要处理低级数据结构(如自定义文件格式、硬件控制数据结构等)的应用程序非常有用。ISO标准C,从C99标准开始,增加了标准头文件<stdint.h>
,定义了以下内容:
uint8_t - unsigned 8 bit
int8_t - signed 8 bit
uint16_t - unsigned 16 bit
int16_t - signed 16 bit
uint32_t - unsigned 32 bit
int32_t - signed 32 bit
uint64_t - unsigned 64 bit
int64_t - signed 64 bit
我经常使用这些类型。
只有在实现支持具有适当大小和特征的预定义类型时(大多数都支持),才会定义这些类型。
<stdint.h>
还定义了名为 (u)int_leastN_t
(至少具有指定宽度的类型)和 (u)int_fastN_t
(具有至少指定宽度的“最快”类型)的类型; 这些类型是强制性的。
如果您正在使用不支持<stdint.h>
的旧实现,则可以使用自己的实现; 一个实现是Doug Gwyn的“q8”。