如何作为数组访问函数参数?

use*_*296 2 c

我在C中有一个函数,它接受一堆参数,我想将这些参数视为数组并按数字访问它们.例如,假设我想从6到1加6个参数,并增加相应的参数.我可以:

void myFunc(int arg1,int arg2,int arg3,int arg4,int arg5,int arg6,n)
{
if (n==1) ++arg1;
else if (n==2) ++arg2;
else if (n==3) ++arg3;
else if (n==4) ++arg4;
else if (n==5) ++arg5;
else if (n==6) ++arg6;
}
Run Code Online (Sandbox Code Playgroud)

但那有点乱.有没有更简洁的方法来做到这一点?

Ser*_* L. 6

虽然在注释中建议传递指向数组的指针可能更容易.如果你真的想参与争论那么你最好的选择可能是使用一个变量函数:

void myFunc(int n, ...)
{
    va_list ap;
    int arg;
    va_start(ap, n);
    while (--n)
        arg = va_arg(ap, int); /* Increments ap to the next argument. */
    va_end(ap);

    arg++;

}
Run Code Online (Sandbox Code Playgroud)