« 魔物 | メイン | 早起き »

可変引数

標準ライブラリを暗記してるとかそういうわけじゃないが、今更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のトッリキーな使い方とか出来るかも。

職場でログをはくのに使ってましたのさ。

トラックバック

このエントリーのトラックバックURL:
http://chrono.s9.xrea.com/x/daysMT/mt-tb.cgi/192

コメントを投稿

About

2005年12月06日 23:42に投稿されたエントリーのページです。

ひとつ前の投稿は「魔物」です。

次の投稿は「早起き」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.34