가변 인수를 사용하는 C 함수가 있는데 매우 긴 인수 목록으로 호출해야합니다. 여기서 인수는 모두 정렬. 예 :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]);
}
하지만, 물론 옵션이 아니다 그.
더 쉽고 우아할만한 것이 있습니까?
대단히 감사합니다.
4 5 중 단지 프로그래머 헤드에 자신을 촬영. –
미안하지만, 왜'myFunc (type * A, type * B)'를이 경우에 할 수 없으며 두 배열을 통해 내부적으로 반복 할 수 없다. – RedX
같은 줄에 여러 개의 '++'가있는 것은 downvote에 의해 처벌 될 수 있습니다;) – Borgleader