Handbuch zur dynamischen Ablaufverfolgung in Solaris

Kennungen für Breite und Genauigkeit

Die minimale Feldbreite kann als Zeichenkette von Dezimalzahlen im Anschluss an ein beliebiges Flag angegeben werden. In diesem Fall wird die Feldbreite auf die angegebene Spaltenanzahl gesetzt. Die Feldbreite kann auch mit einem Asterisk (*) angegeben werden. Dann wird zur Ermittlung der Feldbreite auf ein zusätzliches Argument des Typs int zugegriffen. Um beispielsweise eine Ganzzahl x auf einer durch den Wert der int-Variable w bestimmten Feldbreite darzustellen, schreiben Sie die D-Anweisung:

printf("%*d", w, x);

Die Feldbreite kann auch mit dem Zeichen ? angegeben werden, das bedeutet, dass die Feldbreite auf Grundlage der zur Formatierung einer hexadezimalen Adresse im Datenmodell des Betriebssystemkerns erforderlichen Anzahl von Zeichen festzulegen ist. Beruht der Kernel auf dem 32-Bit-Datenmodell, wird die Breite auf 8, beim 64-Bit-Datenmodell auf 16 gesetzt.

Die Genauigkeit der Umwandlung kann als Zeichenkette von Dezimalzahlen im Anschluss an einen Punkt (.) oder durch einen Asterisk (*) im Anschluss an einen Punkt angegeben werden. Wird die Genauigkeit mit einem Asterisk angegeben, wird zur Ermittlung der Genauigkeit auf ein zusätzliches Argument des Typs int vor dem Umwandlungsargument zugegriffen. Wenn sowohl die Breite als auch die Genauigkeit mit einem Asterisk angegeben werden, sollten die printf()-Argumente für die Umwandlung in folgender Reihenfolge auftreten: Breite, Genauigkeit, Wert.