首页 > 解决方案 > 有没有办法获取 main() 的变量参数并在我自己的函数中使用它们?

问题描述

我是一名学生,学习如何用 c 编写代码,所以我基本上不知道自己在做什么,但无论如何这是我的代码。即使我在运行代码后拥有参数数量,但如果不实现某种参数限制,我也无法在我的函数中使用它们。

int main(int argc, char const *argv[])
{
    max(argc -1, /* help please */)
    return 0;
}

int max(int count, ...)
{
    int max = INT_MIN;
    int current = 0;

    va_list arg;
    va_start(arg, count);
    for (int i = 0; i < count; i++)
    {
        current = va_arg(arg, int);
        if (max < current)
        {
            max = current;
        }
    }
    va_end(arg);
    return max;
}

标签: c

解决方案


您在这里不需要可变参数。只需传递argcargv直接传递给您的函数并循环通过参数:

int max(int argc, char const *argv[])
{
    int max = INT_MIN;
    int current = 0;

    int i;
    for (i=1;i<argc;i++) {
        current = atoi(argv[i]);
        if (max < current)
        {
            max = current;
        }
    }
    return max;
}

int main(int argc, char const *argv[])
{
    max(argc, argv);
    return 0;
}

推荐阅读