stdint.h
(重定向自Cstdint)
stdint.h
是C標準函数庫中的头文件,定义了具有特定位宽的整型,以及对应的宏;还列出了在其他标准头文件中定义的整型的极限。
类型
具有特定位宽的整型
typedef signed integer type int8_t; // optional
typedef signed integer type int16_t; // optional
typedef signed integer type int32_t; // optional
typedef signed integer type int64_t; // optional
typedef unsigned integer type uint8_t; // optional
typedef unsigned integer type uint16_t; // optional
typedef unsigned integer type uint32_t; // optional
typedef unsigned integer type uint64_t; // optional
位宽不少于指定值的最快速的整型
typedef signed integer type int_fast8_t;
typedef signed integer type int_fast16_t;
typedef signed integer type int_fast32_t;
typedef signed integer type int_fast64_t;
typedef unsigned integer type uint_fast8_t;
typedef unsigned integer type uint_fast16_t;
typedef unsigned integer type uint_fast32_t;
typedef unsigned integer type uint_fast64_t;
位宽不少于指定值的整型
typedef signed integer type int_least8_t;
typedef signed integer type int_least16_t;
typedef signed integer type int_least32_t;
typedef signed integer type int_least64_t;
typedef unsigned integer type uint_least8_t;
typedef unsigned integer type uint_least16_t;
typedef unsigned integer type uint_least32_t;
typedef unsigned integer type uint_least64_t;
足够表示对象指標的整型
typedef signed integer type intptr_t; // optional
typedef unsigned integer type uintptr_t; // optional
具有最大位宽的整型
typedef unsigned integer type uintmax_t;
typedef signed integer type intmax_t;
宏
具有特定位宽的整型的极限
- INTN_MIN 为 -(2N-1)
- INTN_MAX 为 2N-1 - 1
- UINTN_MAX 为 2N - 1
位宽不少于指定值的整型的极限
- INT_LEASTN_MIN 为 -(2N-1)
- INT_LEASTN_MAX 为 2N-1 - 1
- UINT_LEASTN_MAX 为 2N - 1
位宽不少于指定值的最快速的整型的极限
- INT_FASTN_MIN 为 -(2N-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 为 -(263 - 1)
- INTMAX_MAX 为 263 - 1
- UINTMAX_MAX 为 264 - 1
其它整型的极限
- ptrdiff_t
- PTRDIFF_MIN 为 -65535
- PTRDIFF_MAX 为 +65535
- sig_atomic_t
- SIG_ATOMIC_MIN
- SIG_ATOMIC_MAX
- size_t
- SIZE_MAX 为 +65535
- wchar_t
- WCHAR_MIN
- WCHAR_MAX
- wint_t
- WINT_MIN
- WINT_MAX
整型常量宏
下述类似于函数的宏,把整型常量值扩展适合其数据类型。
- 位宽不少于指定值的整型常量的宏。例如:UINT64_C(0x123) 扩展为 0x123ULL
- INTN_C(value) 把有符号整型值 value 扩展以适应数据类型 int_leastN_t
- UINTN_C(value) 把无符号整型值 value 扩展以适应数据类型 uint_leastN_t
- 具有最大位宽的整型常量的宏。
- INTMAX_C(value) 把有符号整型值 value 扩展以适应数据类型 intmax_t
- UINTMAX_C(value) 把无符号整型值 value 扩展以适应数据类型 uintmax_t
参考文献
- C99标准的 "7.18 Integer types <stdint.h> "
- http://www.cplusplus.com/reference/cstdint/(页面存档备份,存于互联网档案馆)