stdint.h

(重定向自Cstdint

stdint.hC標準函数庫中的头文件,定义了具有特定位宽的整型,以及对应的宏;还列出了在其他标准头文件中定义的整型的极限。

类型

具有特定位宽的整型

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

参考文献