# 标准库头文件 <cinttypes>

< cpp‎ | header

此头文件原作为 `<inttypes.h>` 存在于 C 标准库。

### 包含
<cstdint> (C++11) | 定宽整数类型与其他类型的极限
### 类型
imaxdiv_t (C++11) | 结构体类型，由 std::imaxdiv 函数返回 (typedef)
### 函数
abs(std::intmax_t)imaxabs (C++11)(C++11) | 计算整数值的绝对值（ \(\small{|x|}\)|x| ） (函数)
div(std::intmax_t)imaxdiv (C++11)(C++11) | 计算整数除法的商和余数 (函数)
strtoimax strtoumax (C++11)(C++11) | 转换字节字符串为 std::intmax_t 或 std::uintmax_t (函数)
wcstoimax wcstoumax (C++11)(C++11) | 转换宽字符串为 std::intmax_t 或 std::uintmax_t (函数)
### 宏
##### std::fprintf 函数族的格式常量
PRId8 PRId16 PRId32 PRId64 PRIdLEAST8 PRIdLEAST16 PRIdLEAST32 PRIdLEAST64 PRIdFAST8 PRIdFAST16 PRIdFAST32 PRIdFAST64 PRIdMAX PRIdPTR (C++11) | 格式转换说明符，分别用于输出 std::int8_t、std::int16_t、std::int32_t、std::int64_t、std::int_least8_t、std::int_least16_t、std::int_least32_t、std::int_least64_t、std::int_fast8_t、std::int_fast16_t、std::int_fast32_t、std::int_fast64_t、std::intmax_t、std::intptr_t 类型的有符号十进制整数值，等价于对于 int 的 `d` (宏常量)
PRIi8 PRIi16 PRIi32 PRIi64 PRIiLEAST8 PRIiLEAST16 PRIiLEAST32 PRIiLEAST64 PRIiFAST8 PRIiFAST16 PRIiFAST32 PRIiFAST64 PRIiMAX PRIiPTR (C++11) | 格式转换说明符，分别用于输出 std::int8_t、std::int16_t、std::int32_t、std::int64_t、std::int_least8_t、std::int_least16_t、std::int_least32_t、std::int_least64_t、std::int_fast8_t、std::int_fast16_t、std::int_fast32_t、std::int_fast64_t、std::intmax_t、std::intptr_t 类型的有符号十进制整数值，等价于对于 int 的 `i` (宏常量)
PRIu8 PRIu16 PRIu32 PRIu64 PRIuLEAST8 PRIuLEAST16 PRIuLEAST32 PRIuLEAST64 PRIuFAST8 PRIuFAST16 PRIuFAST32 PRIuFAST64 PRIuMAX PRIuPTR (C++11) | 格式转换说明符，分别用于输出 std::uint8_t、std::uint16_t、std::uint32_t、std::uint64_t、std::uint_least8_t、std::uint_least16_t、std::uint_least32_t、std::uint_least64_t、std::uint_fast8_t、std::uint_fast16_t、std::uint_fast32_t、std::uint_fast64_t、std::uintmax_t、std::uintptr_t 类型的无符号十进制整数值，等价于对于 unsigned int 的 `u` (宏常量)
PRIo8 PRIo16 PRIo32 PRIo64 PRIoLEAST8 PRIoLEAST16 PRIoLEAST32 PRIoLEAST64 PRIoFAST8 PRIoFAST16 PRIoFAST32 PRIoFAST64 PRIoMAX PRIoPTR (C++11) | 格式转换说明符，分别用于输出 std::uint8_t、std::uint16_t、std::uint32_t、std::uint64_t、std::uint_least8_t、std::uint_least16_t、std::uint_least32_t、std::uint_least64_t、std::uint_fast8_t、std::uint_fast16_t、std::uint_fast32_t、std::uint_fast64_t、std::uintmax_t、std::uintptr_t 类型的无符号八进制整数值，等价于对于 unsigned int 的 `o` (宏常量)
PRIx8 PRIx16 PRIx32 PRIx64 PRIxLEAST8 PRIxLEAST16 PRIxLEAST32 PRIxLEAST64 PRIxFAST8 PRIxFAST16 PRIxFAST32 PRIxFAST64 PRIxMAX PRIxPTR (C++11) | 格式转换说明符，分别用于输出 std::uint8_t、std::uint16_t、std::uint32_t、std::uint64_t、std::uint_least8_t、std::uint_least16_t、std::uint_least32_t、std::uint_least64_t、std::uint_fast8_t、std::uint_fast16_t、std::uint_fast32_t、std::uint_fast64_t、std::uintmax_t、std::uintptr_t 类型的无符号小写十六进制整数值，等价于对于 unsigned int 的 `x` (宏常量)
PRIX8 PRIX16 PRIX32 PRIX64 PRIXLEAST8 PRIXLEAST16 PRIXLEAST32 PRIXLEAST64 PRIXFAST8 PRIXFAST16 PRIXFAST32 PRIXFAST64 PRIXMAX PRIXPTR (C++11) | 格式转换说明符，分别用于输出 std::uint8_t、std::uint16_t、std::uint32_t、std::uint64_t、std::uint_least8_t、std::uint_least16_t、std::uint_least32_t、std::uint_least64_t、std::uint_fast8_t、std::uint_fast16_t、std::uint_fast32_t、std::uint_fast64_t、std::uintmax_t、std::uintptr_t 类型的无符号大写十六进制整数值，等价于对于 unsigned int 的 `X` (宏常量)
##### std::fscanf 函数族的格式常量
SCNd8 SCNd16 SCNd32 SCNd64 SCNdLEAST8 SCNdLEAST16 SCNdLEAST32 SCNdLEAST64 SCNdFAST8 SCNdFAST16 SCNdFAST32 SCNdFAST64 SCNdMAX SCNdPTR (C++11) | 格式转换说明符，分别用于输入 std::int8_t、std::int16_t、std::int32_t、std::int64_t、std::int_least8_t、std::int_least16_t、std::int_least32_t、std::int_least64_t、std::int_fast8_t、std::int_fast16_t、std::int_fast32_t、std::int_fast64_t、std::intmax_t、std::intptr_t 类型的有符号十进制整数值，等价于对于 int 的 `d` (宏常量)
SCNi8 SCNi16 SCNi32 SCNi64 SCNiLEAST8 SCNiLEAST16 SCNiLEAST32 SCNiLEAST64 SCNiFAST8 SCNiFAST16 SCNiFAST32 SCNiFAST64 SCNiMAX SCNiPTR (C++11) | 格式转换说明符，分别用于输入 std::int8_t、std::int16_t、std::int32_t、std::int64_t、std::int_least8_t、std::int_least16_t、std::int_least32_t、std::int_least64_t、std::int_fast8_t、std::int_fast16_t、std::int_fast32_t、std::int_fast64_t、std::intmax_t、std::intptr_t 类型的有符号十进制/八进制/十六进制整数值，等价于对于 int 的 `i` (宏常量)
SCNu8 SCNu16 SCNu32 SCNu64 SCNuLEAST8 SCNuLEAST16 SCNuLEAST32 SCNuLEAST64 SCNuFAST8 SCNuFAST16 SCNuFAST32 SCNuFAST64 SCNuMAX SCNuPTR (C++11) | 格式转换说明符，分别用于输入 std::uint8_t、std::uint16_t、std::uint32_t、std::uint64_t、std::uint_least8_t、std::uint_least16_t、std::uint_least32_t、std::uint_least64_t、std::uint_fast8_t、std::uint_fast16_t、std::uint_fast32_t、std::uint_fast64_t、std::uintmax_t、std::uintptr_t 类型的无符号十进制整数值，等价于对于 unsigned int 的 `u` (宏常量)
SCNo8 SCNo16 SCNo32 SCNo64 SCNoLEAST8 SCNoLEAST16 SCNoLEAST32 SCNoLEAST64 SCNoFAST8 SCNoFAST16 SCNoFAST32 SCNoFAST64 SCNoMAX SCNoPTR (C++11) | 格式转换说明符，分别用于输入 std::uint8_t、std::uint16_t、std::uint32_t、std::uint64_t、std::uint_least8_t、std::uint_least16_t、std::uint_least32_t、std::uint_least64_t、std::uint_fast8_t、std::uint_fast16_t、std::uint_fast32_t、std::uint_fast64_t、std::uintmax_t、std::uintptr_t 类型的无符号八进制整数值，等价于对于 unsigned int 的 `o` (宏常量)
SCNx8 SCNx16 SCNx32 SCNx64 SCNxLEAST8 SCNxLEAST16 SCNxLEAST32 SCNxLEAST64 SCNxFAST8 SCNxFAST16 SCNxFAST32 SCNxFAST64 SCNxMAX SCNxPTR (C++11) | 格式转换说明符，分别用于输入 std::uint8_t、std::uint16_t、std::uint32_t、std::uint64_t、std::uint_least8_t、std::uint_least16_t、std::uint_least32_t、std::uint_least64_t、std::uint_fast8_t、std::uint_fast16_t、std::uint_fast32_t、std::uint_fast64_t、std::uintmax_t、std::uintptr_t 类型的无符号十六进制整数值，等价于对于 unsigned int 的 `x` (宏常量)

### 概要

    #include <cstdint>

    namespace std {
      using imaxdiv_t = /* 见描述 */;

      intmax_t imaxabs(intmax_t j);
      imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom);
      intmax_t strtoimax(const char* nptr, char** endptr, int base);
      uintmax_t strtoumax(const char* nptr, char** endptr, int base);
      intmax_t wcstoimax(const wchar_t* nptr, wchar_t** endptr, int base);
      uintmax_t wcstoumax(const wchar_t* nptr, wchar_t** endptr, int base);

      intmax_t abs(intmax_t);               // 可选，见描述
      imaxdiv_t div(intmax_t, intmax_t);    // 可选，见描述
    }

    #define PRIdN /* 见描述 */
    #define PRIiN /* 见描述 */
    #define PRIoN /* 见描述 */
    #define PRIuN /* 见描述 */
    #define PRIxN /* 见描述 */
    #define PRIXN /* 见描述 */
    #define SCNdN /* 见描述 */
    #define SCNiN /* 见描述 */
    #define SCNoN /* 见描述 */
    #define SCNuN /* 见描述 */
    #define SCNxN /* 见描述 */
    #define PRIdLEASTN /* 见描述 */
    #define PRIiLEASTN /* 见描述 */
    #define PRIoLEASTN /* 见描述 */
    #define PRIuLEASTN /* 见描述 */
    #define PRIxLEASTN /* 见描述 */
    #define PRIXLEASTN /* 见描述 */
    #define SCNdLEASTN /* 见描述 */
    #define SCNiLEASTN /* 见描述 */
    #define SCNoLEASTN /* 见描述 */
    #define SCNuLEASTN /* 见描述 */
    #define SCNxLEASTN /* 见描述 */
    #define PRIdFASTN /* 见描述 */
    #define PRIiFASTN /* 见描述 */
    #define PRIoFASTN /* 见描述 */
    #define PRIuFASTN /* 见描述 */
    #define PRIxFASTN /* 见描述 */
    #define PRIXFASTN /* 见描述 */
    #define SCNdFASTN /* 见描述 */
    #define SCNiFASTN /* 见描述 */
    #define SCNoFASTN /* 见描述 */
    #define SCNuFASTN /* 见描述 */
    #define SCNxFASTN /* 见描述 */
    #define PRIdMAX /* 见描述 */
    #define PRIiMAX /* 见描述 */
    #define PRIoMAX /* 见描述 */
    #define PRIuMAX /* 见描述 */
    #define PRIxMAX /* 见描述 */
    #define PRIXMAX /* 见描述 */
    #define SCNdMAX /* 见描述 */
    #define SCNiMAX /* 见描述 */
    #define SCNoMAX /* 见描述 */
    #define SCNuMAX /* 见描述 */
    #define SCNxMAX /* 见描述 */
    #define PRIdPTR /* 见描述 */
    #define PRIiPTR /* 见描述 */
    #define PRIoPTR /* 见描述 */
    #define PRIuPTR /* 见描述 */
    #define PRIxPTR /* 见描述 */
    #define PRIXPTR /* 见描述 */
    #define SCNdPTR /* 见描述 */
    #define SCNiPTR /* 见描述 */
    #define SCNoPTR /* 见描述 */
    #define SCNuPTR /* 见描述 */
    #define SCNxPTR /* 见描述 */