引数順 (POSIX)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/11 05:25 UTC 版)
「printf」の記事における「引数順 (POSIX)」の解説
これは標準C規格の仕様ではなく、POSIXで規定されている拡張である。 書式文字列において%の代わりに%m$を記述することで、続く可変長引数のうちどれを使うかを番号mで指定できる。例えば、 const char* fmt = "Invalid command %1$s at line %2$d.\n";const char* cmd = "hoge";const int lineNumber = 20;printf(fmt, cmd, lineNumber); とした場合、 Invalid command hoge at line 20. と表示される。これだけならば大きな意味はないが、例えばメッセージを翻訳(ローカライズ)する際、 const char* fmt = "%2$d行目のコマンド %1$s は不正です。\n"; というように書式文字列だけをローカライズすることで、可変長引数の指定順を変更せずに、 20行目のコマンド hoge は不正です。 という自然な語順の出力を得ることができる。
※この「引数順 (POSIX)」の解説は、「printf」の解説の一部です。
「引数順 (POSIX)」を含む「printf」の記事については、「printf」の概要を参照ください。
- 引数順のページへのリンク