格式字符串中的每种转换规范都由 % 字符引入,在该字符后按顺序显示以下信息:
零个或多个标志(以任意顺序显示),用于修改转换规范的含义,如下节所述。
可选最小字段宽度。如果转换的值的字节数小于字段宽度,则缺省情况下将在该值的左侧填充空格,如果指定了左对齐标志 (-),则将在该值的右侧填充空格。还可将字段宽度指定为星号 (*),在此情况下,将根据 int 类型的另一参数的值动态设置字段宽度。
精度(可选),用于指示 d、i、o、u、x 和 X 转换要显示的最小位数(将对字段填充前导零);e、E 和 f 转换的基数字符之后要显示的位数,g 和 G 转换要显示的最大有效位数;或者进行 s 转换后字符串中要列显的最大字节数。精度采用句点 (.) 后跟星号 (*) 的形式(如下所述),或十进制数字字符串的形式。
大小前缀序列(可选),用于指示对应参数的大小,如大小前缀中所述。大小前缀在 D 中不是必需的,提供它是为了与 C printf() 函数兼容。
转换说明符,用于指示要应用于参数的转换类型。
printf(3C) 函数还支持 % n$ 形式的转换规范,其中 n 是十进制整数;DTrace printf() 不支持此类型的转换规范。