0

関数を作成しているので、少なくとも2つ(2つ)のパラメーターを渡す必要があります。myStructとvalue、他の引数はオプションです。

これは私の関数のサンプルです:

int find(struct myStruct *, void * value, ...);

これは可能なすべての議論です:

struct myStruct *, void * value, int (*comparable) (void *, void *), int flag

va_listを使用する必要があると思いますが、最後のパラメーターをnullに渡したくありません。これは可能ですか?

4

1 に答える 1

0

可変引数を使用すると、少なくとも次のオプションがあります。

  • 最後のパラメーターはNULL(またはターミネーターとして認識できる別のパラメーター)です。
  • 「最初の」パラメーターは、関数が認識しなければならないパラメーターの数です。
  • 最初のパラメータはspezifyで、従う必要があるもの(format-stringsなど)

ただし、覚えておいてください。あなた(プログラマー)は、適切な数のパラメーターを提供することを確認する必要があります。したがって、関数から(他のプログラマー用の)インターフェースを作成したい場合は、それが可能な限りフェイルセーフで自然であることを確認してください。そうである場合は、複数作成のGUI関数を使用すると、GUI要素のNULL終了リストが頭に浮かびます。

于 2013-03-19T13:18:55.933 に答える