C言語なら俺に聞け! Part 124
■ このスレッドは過去ログ倉庫に格納されています
0703デフォルトの名無しさん
2006/03/29(水) 16:15:47可変長引数の関数(void var_arg_func(int n, ...))をつくって、
var_arg_func(99, "call", "with", "five", "arguments");
と呼び出して、関数内で
va_list ap;
char *s
va_start(ap, n)
while( s = va_arg(ap, char*))
puts(s);
va_end(ap);
というふうにして引数を表示させると、動作はするんですが
最後にBus Errorが出ました。
var_arg_func(44, "arg2", "arg3", NULL);
と呼び出せばうまくいくんですが、あんまり気持ちよくないです。
呼び出し側から、引数にそのときの引数の数を入れるのもあまり
スマートじゃない感じがします。
こういうとき、関数の中から実際に渡された引数の数を知る方法
はありますか?
それか、うまく終了判定する方法はありますか?
■ このスレッドは過去ログ倉庫に格納されています