2

そのため、va_list を使用してコマンドライン引数を繰り返し処理できればよいのにと思いました。どこかでそれが行われているのを見たことがあると思います。

私は役に立たずにグーグルを試みました。

これを達成する方法を知っている人、または達成できるかどうか知っている人はいますか?

4

2 に答える 2

8

できません。va_listvarargs 関数に適用されますが、そうでmainはありません。ただし、私が知りたいのは、なぜこれを好むのかということです (可能であれば):

char *arg;
va_list vl;
va_start(vl, argc);
while ((arg = va_arg(vl, char*)))
    // use arg
va_end(vl);

これに:

for (int i = 0; i < argc; ++i)
   // use argv[i]

またはこれ:

for (char **arg = argv; *arg; ++arg)
   // use *arg
于 2012-08-17T16:36:29.437 に答える
-1

http://www.cplusplus.com/reference/clibrary/cstdarg/va_start/

これは、特にコマンド ライン引数には適用されません。

于 2012-08-17T16:29:58.900 に答える