Answers:
C99 stdint.h
定义了以下内容:
int8_t
int16_t
int32_t
uint8_t
uint16_t
uint32_t
并且,如果架构支持它们:
int64_t
uint64_t
也有其他各种整数typedef stdint.h
。
如果您没有C99环境,那么您应该提供自己的typedef并始终使用C99。
该uint32
和uint64
(即不带_t
后缀)可能是特定应用。
stdint.h
需要它们。
typedef uint32_t Uint32;
include / SDL_stdinc.h中的别名(如果您是SDL用户)
这些整数类型都在 stdint.h
stdint.h
如果您尊重C99标准,我想您会明白。
stdint.h
。这将返回0个匹配:grep uint32 /usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h | grep -v uint32_t
。
#include "stdint-gcc.h"
,然后对该文件进行grepping即可得到定义。
_t
如上答案所示,只有标准的和应该定义的带有后缀。
如果您使用的是C99,请添加stdint.h
。顺便说一句,如果处理器支持它们,则有64位类型。
uint128_t
if __SIZEOF_INT128__
定义为16或更大(GCC和兼容版本)。它在x86_64 / amd64计算机上可用,但处理器本身不支持它。只有Cray的寄存器大小为IIRC。
int_leastNN_t
和uint_leastNN_t
为NN
8,16,32,和64 必须始终存在。C99不允许没有至少64位整数类型的实现,因为long long
要求它至少要那么大。