大小规格
在格式规范,第四个可选字段是转换说明符的参数修饰符长度。 为 type 字段h、l、w、I、I32、I64和 ll的选项 size 字段标题—指定“范围”的对应参数长或短,32 位或 64 位,单字节字符或宽字符依赖于这些修改的转换说明符。 如下表所示,这些修饰符长度前缀用于与 type 字符在功能 printf 和 wprintf 系列指定参数长度的解释。
备注
I、I32和 I64 长度修饰符标题是 Microsoft 扩展并不是 ANSI 兼容。h 标题,在使用了类型 char,w 标题,在使用了与数据类型 wchar_t时和 l 标题数据,在使用了类型 double 时数据是 Microsoft 扩展。hh、j、z和 t 长度标题不受支持。
调整 printf 和 wprintf 类型的格式说明符的标题
指定属性 |
使用前缀 |
类型说明符 |
---|---|---|
long int |
l (例 L) |
d、i、o、x 或 X |
long unsigned int |
l |
o、u、x 或 X |
long long |
ll |
d、i、o、x 或 X |
short int |
h |
d、i、o、x 或 X |
short unsigned int |
h |
o、u、x 或 X |
__int32 |
I32 |
d、i、o、x 或 X |
unsigned __int32 |
I32 |
o、u、x 或 X |
__int64 |
I64 |
d、i、o、x 或 X |
unsigned __int64 |
I64 |
o、u、x 或 X |
ptrdiff_t (即在 32 位平台上 __int32,在 64 位平台上 __int64 ) |
I |
d、i、o、x 或 X |
size_t (即在 32 位平台上 unsigned __int32 ,在 64 位平台上 unsigned __int64 ) |
I |
o、u、x 或 X |
long double (在 Visual C++,不过,long double 不同类型,它具有内部表示形式和 double相同。) |
l 或 L |
a、A、e、E、f、g 或 G |
与 printf 和 wprintf 功能的单字节字符。 ( hc 或 hC 类型说明符是同义词的与 printf 功能的 c 以及 wprintf 功能的 C。) |
h |
c 或 C |
与 printf 和 wprintf 功能的宽字符。 ( lc、lC、wc 或 wC 类型说明符是同义词的与 printf 功能的 C 以及 wprintf 功能的 c。) |
l 或 w |
c 或 C |
单字节与 printf 和 wprintf 的字符串) 函数。 ( hs 或 hS 类型说明符是同义词的与 printf 功能的 s 以及 wprintf 功能的 S。) |
h |
s、S 或 Z |
与 printf 和 wprintf 功能的宽字符字符串。 ( ls、lS、ws 或 wS 类型说明符是同义词的与 printf 功能的 S 以及 wprintf 功能的 s。) |
l 或 w |
s、S 或 Z |