> 백엔드 개발 > C++ > C에서 한 함수의 변수 인수를 다른 함수로 어떻게 전달할 수 있나요?

C에서 한 함수의 변수 인수를 다른 함수로 어떻게 전달할 수 있나요?

Patricia Arquette
풀어 주다: 2024-12-11 17:21:15
원래의
780명이 탐색했습니다.

How Can I Pass Variable Arguments from One Function to Another in C?

C에서 함수 간에 변수 인수 전달

이 질문은 변수 인수 목록도 허용하는 다른 함수에 변수 인수를 전달하는 것과 관련이 있습니다. 이 작업에는 exampleB의 가변 인수 목록을 유지하면서 example에서 exampleB를 호출하는 작업이 포함됩니다.

인수를 직접 전달하는 것은 불가능합니다. 대신 가변 인수 목록을 허용하는 중개 함수가 필요합니다. 수행 방법은 다음과 같습니다.

#include <stdarg.h>

static void exampleV(int b, va_list args); // Intermediary function

void example(int a, int b, ...) // Renamed for consistency
{
    va_list args;
    do_something(a);                // Use argument a
    va_start(args, b);
    exampleV(b, args);
    va_end(args);
}

void exampleB(int b, ...)
{
    va_list args;
    va_start(args, b);
    exampleV(b, args);
    va_end(args);
}

static void exampleV(int b, va_list args)
{
    ...whatever you planned to have exampleB do... // Excluding va_start and va_end
}
로그인 후 복사

이 설정에서 exampleV는 브리지 역할을 하여 exampleB를 수정하지 않고 example에서 exampleB로 변수 인수를 전달합니다.

위 내용은 C에서 한 함수의 변수 인수를 다른 함수로 어떻게 전달할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿