標準ライブラリを暗記してるとかそういうわけじゃないが、今更C言語の文法にひっかかるとは思わなかった。
「可変個の引数」
printfの第二引数以降のあれです。
int printf(const char *format, ...);
ドット三つで表記します。ただし、必ず仮引数の最後で。
いくらでも引数をいれていくことができるわけです。
使い方は、
va_list list; /* va_list型の変数を用意*/
va_start( list, format ); /* ... の直前の引数をいれる */
として初期化をし、
va_arg(list, int); /* (次の)引数をint型で取り出す */
最後に、
va_end( list ); /* 可変個の引数リスト 使用終了 */
と記述する。
それぞれマクロなんだけど、なにしてるのやら。。。
printfとかはスイッチ文とかで型を決めてるんですかね。
こんなことを知ってるとprintfのトッリキーな使い方とか出来るかも。
職場でログをはくのに使ってましたのさ。