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 "
- http://www.cplusplus.com/reference/cstdint/
评论 (0)