C 언어에서 가변 인자와 가변 길이 매개 변수 사용하기

  • 2 minutes to read

C 언어에서 가변 인자와 가변 길이 매개 변수를 사용하면 함수에 임의의 개수의 인자를 전달할 수 있습니다. 이를 통해, 프로그래머는 유연하게 다양한 수의 매개 변수를 가진 함수를 정의할 수 있습니다.

필요한 헤더 파일 포함

가변 인자를 사용하려면 stdarg.h 헤더 파일을 포함해야 합니다.

#include <stdio.h>
#include <stdarg.h>

가변 길이 매개 변수를 사용한 합계 구하기

먼저, 가변 길이 매개 변수를 사용하여 정수들의 합계를 계산하는 예제를 살펴보겠습니다.

함수 원형 선언

int sum(int count, ...);

함수 구현

int sum(int count, ...) {
    va_list args;
    va_start(args, count);

    int total = 0;
    for (int i = 0; i < count; i++) {
        total += va_arg(args, int);
    }

    va_end(args);
    return total;
}

메인 함수 예제

int main() {
    int result = sum(4, 1, 2, 3, 4);
    printf("합계: %d\n", result);
    return 0;
}

가변 인자의 사용 방법

가변 인자를 사용하여 함수를 정의할 때, 마지막 고정 인자 다음에 ...를 사용합니다.

함수 예제

void displayValues(int count, ...) {
    va_list args;
    va_start(args, count);

    for(int i = 0; i < count; i++) {
        int num = va_arg(args, int);
        printf("%d ", num);
    }

    va_end(args);
}

주의 사항

  1. 함수에서 정확한 타입의 인자 개수와 타입을 알고 있어야 합니다. 잘못된 타입을 사용하면 예상치 못한 결과나 오류가 발생할 수 있습니다.
  2. va_startva_end는 반드시 쌍으로 사용되어야 합니다.
  3. 가변 인자는 타입 안전성이 없기 때문에 사용 시 주의가 필요합니다.

결론

C 언어에서의 가변 인자와 가변 길이 매개 변수는 매우 강력한 도구입니다. 그러나 그만큼 주의 깊게 사용해야 합니다. 정확한 인자의 개수와 타입을 알고 있지 않으면 예기치 않은 오류를 초래할 수 있으므로, 항상 신중하게 활용해야 합니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com