前: Patsubst, 上: Text handling
format(format-string, ...)
このマクロはC言語の関数printf
とよく似た動作をします。
最初の引数は書式指定文字列で`%'指定を含めることができます。
format
は展開されると書式付の文字列になります。
2, 3の例を使って説明するのが一番でしょう。
define(`foo', `The brown fox jumped over the lazy dog') => format(`The string "%s" is %d characters long', foo, len(foo)) =>The string "The brown fox jumped over the lazy dog" is 38 characters long
See Loopsで定義されているforloop
マクロを使って
表形式の出力をするときはformat
を次のように使うことができます。
forloop(`i', 1, 10, `format(`%6d squared is %10d ', i, eval(i**2))') => 1 squared is 1 => 2 squared is 4 => 3 squared is 9 => 4 squared is 16 => 5 squared is 25 => 6 squared is 36 => 7 squared is 49 => 8 squared is 64 => 9 squared is 81 => 10 squared is 100
組み込みマクロformat
はANSI Cの`printf'関数をモデルとしており、
次の標準的な`%'指定をサポートしています: `c', `s', `d',
`o', `x', `X', `u', `e', `E', `f'。
またフィールド幅と精度指定、モディファイア `+', `-', ` ',
`0', `#', `h', `l'をサポートしています。
printf
の動作について更に詳しいことは
C ライブラリマニュアルを見てください。