Sun Studio 12:C 用户指南

格式字符串宏

<inttypes.h> 文件还包括指定 printf(3S)scanf(3S) 格式说明符的宏。实质上,如果宏名称内置了参数的位数,这些宏将考虑在格式说明符前面添上 lll,将参数标识为 longlong long

printf(3S) 的宏以十进制、八进制、无符号和十六进制格式打印最短和最长整型,如以下示例所示:


int64_t i;
printf("i =%" PRIx64 "\n", i);

同样,scanf(3S) 的宏以十进制、八进制、无符号和十六进制格式读取最短和最长整型。


uint64_t u;
scanf("%" SCNu64 "\n", &u);

不要不加区别地使用这些宏。最好将它们与定宽整型中介绍的定宽类型一起使用。