我在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)
但那有点乱.有没有更简洁的方法来做到这一点?
虽然在注释中建议传递指向数组的指针可能更容易.如果你真的想参与争论那么你最好的选择可能是使用一个变量函数:
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)