Solaris 动态跟踪指南

大小前缀

在使用 printf(3C) 指示转换参数的大小和类型的 ANSI-C 程序中,需要使用大小前缀。因为 D 编译器会自动对 printf() 调用执行此处理,所以不需要大小前缀。尽管提供大小前缀是为了与 C 兼容,但因为在使用派生类型时它们会将代码绑定到特定数据模型,所以明确建议不要在 D 程序中使用它们。例如,如果根据数据模型将 typedef 重新定义为其他整数基本类型,则在未明确知道两种基础类型并且包括强制转换表达式(或定义多个格式字符串)的情况下,不能使用单个 C 转换来同时处理两种数据模型。D 编译器通过允许省略大小前缀并自动确定参数大小来自动解决此问题。

大小前缀只能放在格式转换名称之前和所有标志、宽度以及精度说明符之后。大小前缀如下所示: