printf
のフォーマット文字列を指定すると、期待される引数の数を返す標準のC/C++関数がありますか?例えば:printfの引数の数を確認する
num_printf_args("%d %s") == 2;
num_printf_args("%.1f%%") == 1;
num_printf_args("%*d") == 2;
ちょうど形式文字列で%
の数をカウントする第一の例ではなく、明らかではない第二及び第三のもので働く第一次近似であろう。
実際にprintf
に渡された引数の数(およびそれらの型)が書式文字列と一致しない場合、コンパイル時にエラーが発生するので、gccはこれを行うことができます。
ISO/IEC 9899にはこのような機能:1999(言語標準)。完全にはわからない:2011年、しかし私はそうは思わない。これはGCCによって実装された拡張機能です。 – DevSolar
引数の型に関する情報がないと、なぜ便利なのでしょうか? –
これは言語の一部ではなく、特定のgcc拡張です。 [gccの関数属性](https://gcc.gnu.org/onlinedocs/gcc-3.2/gcc/Function-Attributes.html)の 'format'を参照してください。 – usr2564301