Solaris(64 位)开发者指南

格式字符串宏

<inttypes.h> 文件还提供了用于指定 printfscanf 格式说明符的宏。实际上,这些宏会根据内置于宏名称中的参数的位数,在格式说明符前面放置一个 lll,将参数指定为 longlong long 类型。

printf(3C) 的宏以十进制、八进制、无符号和十六进制格式列显 8 位、16 位、32 位和 64 位整数以及最短和最长整数类型。例如,以十六进制表示法列显 64 位整数:

int64_t i;

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

同样,scanf(3C) 的宏也以十进制、八进制、无符号和十六进制格式读取 8 位、16 位、32 位和 64 位整数以及最长整数类型。例如,读取无符号的 64 位十进制整数:

uint64_t u;

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

请勿毫无限制地使用这些宏,最好将其与定宽类型一起使用。有关更多详细信息,请参阅定宽的整数类型一节。