我有一个接受可变参数的 C 函数,我需要用很长的参数列表调用它,其中所有参数都遍历数组的元素。例子:
myFunction( A[0], B[0], A[1], B[1], A[2], B[2], A[3], B[3], ..... A[N], B[N] );
其中 N 通常为 100-200。
我宁愿不必每次使 N 变大时都手动构建此调用,并开始思考,有没有一种优雅的方法来做到这一点?
我试过类似的东西:
i=0;
myFunction( A[i], B[i++], A[i], B[i++], A[i], B[i++], A[i], B[i++], ..... A[i], B[++] );
但这当然失败了。然而,它更受欢迎的是,每当我使 N 变大时,我可以简单地一遍又一遍地复制同一行,而不必确保每个数组索引都是正确的,这非常乏味。
更改 myFunction() 不是一种选择。
我希望 C 有一种即时构造函数调用的方法,例如:
for( i = 0 ; i <= N ; i++ )
{
CONSTRUCT_CALL( myFunction, A[i], B[i] );
}
这正是我想要的,但当然这不是一个选择。
有什么更容易或更优雅的吗?
非常感谢。