5

たとえば、オプション配列は次のとおりです。

static struct option const long_options[] =
{
  {"help", no_argument, 0, 'h'},
  {"version", no_argument, 0, 'v'},
  {0, 0, 0, 0}
};

パディング用ですか?

4

2 に答える 2

3

のマニュアルページを見てくださいgetopt_long()

int
 getopt_long(int argc, char * const *argv, const char *optstring,
     const struct option *longopts, int *longindex);

argcとのargvペアは、配列内にいくつのエントリがあるかを示す 1 つの方法を示しています (明示的なカウントによって、ただしargv[argc] == 0、そこにはセンチネルもあります)。はoptstring短い引数を示します。これlongindexは出力パラメータです。これはポインターのみを残しますlongopts。これは、関数が、サポートするカウントなしで (引数がない) 配列内にいくつのエントリーがあるかを伝えることができなければならないことを意味しますlongoptcount。そのため、配列の最後はすべての値ゼロ (センチネル値) でマークされます。

于 2010-12-16T21:04:13.840 に答える
3

これは「センチネル」であるため、配列を処理するコードは、配列がいつ終了したかを認識します。

于 2010-12-16T20:30:20.730 に答える