c - 如何在 C 中使用 va_list 遍历命令行参数

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

所以我发现自己希望我可以使用 va_list 遍历命令行参数,我相信我已经在某个地方看到过它。

我试过谷歌搜索但无济于事。

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

最佳答案

你不能。 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

关于c - 如何在 C 中使用 va_list 遍历命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12009593/

相关文章:

C++ 11/14 - 是否有用于在别处管理的资源的原始指针包装器?

java - Java 命令行参数中的空格在 Amazon 云中引发错误

c++ - 寻找用于在 Linux 中高效计算巨大稀疏矩阵的 C/C++ 接口(interface)

c++ - 用于打开文件的紧凑指针表示法

c - 为什么两个指针之间有 16 个字节的差异而不是 8 个字节?

c - 如何 free() 一个结构正确的 malloc()?

python - 解析 GTF 基因文件

python-3.x - 使用 "pip3 install xgboost"安装时出错

c - 无法理解 Valgrind 的错误消息

python - Cython函数内存泄漏