Inttypes.h

inttypes.h是C標準函数庫中的头文件，提供了各种位宽的整数类型输入输出时的转换标志宏。

宏
下述定义的宏用于stdint.h中定义的各种位宽的整形在格式化输入/输出时的格式标志。
前3个字符：
PRI 用于printf format
SCN 用于scanf format
第4个字符
x 用于hexadecimal formatting
u 用于unsigned formatting
o 用于octal formatting
i 用于integer formatting
d 用于decimal formatting
其他字符
8 用于eight bit
16 用于sixteen bit
32 用于thirty-two bit
64 用于sixty-four bit
FAST8 用于"fast" eight bit
FAST16 用于"fast" sixteen bit
FAST32 用于"fast" thirty-two bit
FAST64 用于"fast" sixty-four bit
LEAST8 用于"least" eight bit
LEAST16 用于"least" sixteen bit
LEAST32 用于"least" thirty-two bit
LEAST64 用于"least" sixty-four bit
PTR 用于指针
MAX 用于maximum supported bit size

下列符号末尾的斜体N表示整型的位宽8、16、32、64等。

例如PRIdFAST32可用于作为打印输出int_fast32_t整型的格式标志。

有符号整型的格式化输出标志
PRIdN PRIdLEASTN PRIdFASTN PRIdMAX PRIdPTR
PRIiN PRIiLEASTN PRIiFASTN PRIiMAX PRIiPTR

无符号整型的格式化输出
PRIoN PRIoLEASTN PRIoFASTN PRIoMAX PRIoPTR
PRIuN PRIuLEASTN PRIuFASTN PRIuMAX PRIuPTR
PRIxN PRIxLEASTN PRIxFASTN PRIxMAX PRIxPTR
PRIXN PRIXLEASTN PRIXFASTN PRIXMAX PRIXPTR

有符号整型的格式化输入
SCNdN SCNdLEASTN SCNdFASTN SCNdMAX SCNdPTR
SCNiN SCNiLEASTN SCNiFASTN SCNiMAX SCNiPTR

无符号整型的格式化输入
SCNoN SCNoLEASTN SCNoFASTN SCNoMAX SCNoPTR
SCNuN SCNuLEASTN SCNuFASTN SCNuMAX SCNuPTR
SCNxN SCNxLEASTN SCNxFASTN SCNxMAX SCNxPTR

例子
#include <inttypes.h>
#include <wchar.h>
int main(void)
{
  uintmax_t i = UINTMAX_MAX; // this type always exists
  wprintf(L"The largest integer value is %020" PRIxMAX "\n", i);
  return 0;
}

类型
imaxdiv_t  结构化类型，用于保存函数imaxdiv返回的除商与余数

函数
imaxabs 计算绝对值
imaxdiv  计算商与余数
strtoimax 字符串转换为整数
strtoumax 字符串转换为无符号整数
wstrtoimax 宽字符串转换为整数
wstrtoumax 宽字符串转换为无符号整数

 

V