【问题标题】:How can I iterate through command-line arguments with va_list in C如何在 C 中使用 va_list 遍历命令行参数
【发布时间】:2012-08-18 00:55:49
【问题描述】:

所以我发现自己希望我可以使用 va_list 遍历命令行参数,并且我相信我已经在某处看到了它。

我试过谷歌搜索没有用。

有谁知道如何实现或知道是否可以实现?

【问题讨论】:

  • argcargv不够用有什么原因吗?
  • 我感觉@hmjd 的建议有点像答案
  • 为什么这比简单的for 循环更好?

标签: c pointers command-line command-line-arguments


【解决方案1】:

你不能。 va_list 适用于可变参数函数,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

【讨论】:

    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 2014-06-05
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 2013-01-13
      • 1970-01-01
      • 2012-08-30
      • 2023-04-01
      • 1970-01-01
      相关资源
      最近更新 更多