printf()的参数格式如下所示
%[flags][width][.precision][size]type
其中,第四个域size在指定了type的取值范围。
1 以其他格式打印字符
当size域是hh,且type是d,i,o,u,x或者X时,表示以十进制整型、八进制、无符号或者十六进制的格式打印字符。
char c = 0xf0;
printf("%c", c);此时打印的字符不可见。
printf("%x", c);此时的输出是fffffff0,很明显超出了c的范围。
printf("%hhx", c);此时的输出是f0。
2 以其他格式打印短整型
当size域是h,且type是d,i,o,u,x或者X时,表示以十进制整型、八进制、无符号或者十六进制的格式打印短整型。
3 以其他格式打印长整型
当size域是l,且type是d,i,o,u,x或者X时,表示以十进制整型、八进制、无符号或者十六进制的格式打印长整型。
4 以其他格式打印long long整型
当size域是ll,且type是d,i,o,u,x或者X时,表示以十进制整型、八进制、无符号或者十六进制的格式打印long long整型。
long long int li = 9223372036854775807;
printf("%d", li);此时显示的是是“-1”,可以使用如下方法正确打印出li:
printf("%lld", li);
版权声明:本文为hou09tian原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。