C の関数間で変数引数を渡す
この質問は、変数引数リストを受け入れる別の関数に変数引数を渡すことに関するものです。このタスクには、exampleB の可変引数リストを保持しながら、example から exampleB を呼び出すことが含まれます。
引数を直接渡すことは実現できません。代わりに、可変引数リストを受け入れる中間関数が必要です。これを実現する方法は次のとおりです:
#include <stdarg.h> static void exampleV(int b, va_list args); // Intermediary function void example(int a, int b, ...) // Renamed for consistency { va_list args; do_something(a); // Use argument a va_start(args, b); exampleV(b, args); va_end(args); } void exampleB(int b, ...) { va_list args; va_start(args, b); exampleV(b, args); va_end(args); } static void exampleV(int b, va_list args) { ...whatever you planned to have exampleB do... // Excluding va_start and va_end }
この設定では、exampleV がブリッジとして機能し、exampleB を変更せずに example から exampleB に変数引数を渡します。
以上がC である関数から別の関数に変数引数を渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。