整数类型:stdint.h

作者:追风剑情 发布于:2020-6-30 9:28 分类:C

stdint.h头文件中使用typedef工具创建整数类型名,指定整数的属性。stdint.h头文件包含在inttypes.h中,后者提供输入/输出函数调用的宏。

stdint.h头文件中用一组typedef标识精确宽度的类型。

确切宽度类型
typedef名 属性
int8_t 8位,有符号
int16_t 16位,有符号
int32_t 32位,有符号
int64_t 64位,有符号
uint8_t 8位,无符号
uint16_t 16位,无符号
uint32_t 32位,无符号
uint64_t 64位,无符号
注意,并不是所有的系统都支持其中的所有类型。
最小宽度类型
int_least8_t 至少8位,有符号
int_least16_t 至少16位,有符号
int_least32_t 至少32位,有符号
int_least64_t 至少64位,有符号
uint_least8_t 至少8位,无符号
uint_least16_t 至少16位,无符号
uint_least32_t 至少32位,无符号
uint_least64_t 至少64位,无符号
最小宽度类型保证其类型的大小至少是某数量位,系统中一定会有这些类型。
最快最小宽度类型
int_fast8_t 至少8位有符号
int_fast16_t 至少16位有符号
int_fast32_t 至少32位有符号
int_fast64_t 至少64位有符号
uint_fast8_t
至少8位无符号
uint_fast16_t
至少16位无符号
uint_fast32_t
至少32位无符号
uint_fast64_t 至少64位无符号
在特定系统中,使用某些整数类型比其整数类型更快。
最大宽度类型
intmax_t 最大宽度的有符号类型
uintmax_t 最大宽度的无符号类型
这种类型的变量可以储存系统中的任意整数值,还要考虑符号。
可储存指针值的整数类型
intptr_t 可储存指针值的有符号类型
uintptr_t 可储存指针值的无符号类型
它们可以精确地储存指针值。也就是说,如果把一个void *类型的值赋给这种类型的变量,然后再把该类型的值赋回给指针,不会丢失任何信息。系统可能不支持这类型。
整型常量
常量标识符 最小值
INTN_MIN 等于-(2N-1-1)
INTN_MAX 等于2N-1-1
UINTN_MAX 等于2N-1-1
INT_LEASTN_MIN -(2N-1-1)
INT_LEASTN_MAX 2N-1-1
UINT_LEASTN_MAX 2N-1
INT_FASTN_MIN -(2N-1-1)
INT_FASTN_MAX 2N-1-1
UINT_FASTN_MAX 2N-1
INTPTR_MIN -(215-1)
INTPTR_MAX 215-1
UINTPTR_MAX 216-1
INTMAX_MIN -(215-1)
INTMAX_MAX 263-1
UINTMAX_MAX 264-1
这些常量用于表示该头文件中所定义类型的限定值。常量都根据类型命名,即用_MIN或_MAX代替类型名中的_t,然后把所有字母大写即得到表示该类型最小值或最大值的常量名。例如,int32_t类型的最小值是INT32_MIN、uint_fast16_t的最大值是UINT_FAST16_MAX。此表总结了这些常量以及与之相关的intptr_t、uintptr_t、intmax_t和uintmax_t类型,其中的N表示位数。这些常量的值应等于或大于(除非指明了一定要等于)所列的值。
其他整型常量
常量标识符 含义
PTRDIFF_MIN ptrdiff_t类型的最小值
PTRDIFF_MAX ptrdiff_t类型的最大值
SIG_ATOMIC_MIN sig_atomic_t类型的最小值
SIG_ATOMIC_MAX sig_atomic_t类型的最大值
WCHAR_MIN wchar_t类型的最小值
WCHAR_MAX wchar_t类型的最大值
WINT_MIN wint_t类型的最小值
WINT_MAX wint_t类型的最大值
SIZE_MAX size_t类型的最大值
该头文件还定义了一些别处定义的类型使用的常量

扩展的整型常量

stdin.h头文件定义了一些宏用于各种扩展整数类型。从本质上看,这种宏是底层类型(即在特定实现中表示扩展类型的基本类型)的强制转换。

把类型名后面的_t替换成_C,然后大写所有的字母就构成了一个宏名。例如,使用表达式UNIT_LEAST64_C(1000)后,1000就是unit_least64_t类型的常量。

标签: C语言

Powered by emlog  蜀ICP备18021003号   sitemap

川公网安备 51019002001593号