2012-01-09 3 views
0

可能性の重複MAKECONTEXTする変数の引数を渡す:
Forward an invocation of a variadic function in C機能に

を私は次のようにmakecontext関数に変数引数を渡したいです。三番目のパラメータ(?)において

void a(...) 
{ 
.... 
makecontext(&stack, &func, ?, ?); 
.... 
} 

?で、私はすべての引数を有するべきであるが、私は、可変引数の数を有していなければなりません。これはどうすればできますか?

答えて

2

variadic関数が持つパラメータの数を知る方法はありません。この情報は、決してそれには渡されません。
発信者が尊重する必要がある唯一の方法は慣例によるものです。
2つの一般的な規則:
1.最初のパラメータの1つはパラメータの数です。
2.すべてのパラメータはポインタであり、最後のパラメータはNULLでなければなりません。

printfには、何が渡されたかもわかりません。書式文字列のパーセント記号を数え、パラメータ数が一致していると仮定します。

関連する問題