가변 인수 함수는 함수를 호출할 때 전달하는 인수의 개수가 정해져 있지 않은 함수입니다.
고정 인수(반드시 전달해야 하는 인수)는 적어도 1개 이상이 있어야 하고 나머지는 ...으로 나타냅니다.
#include <stdio.h>
#include <stdarg.h>//이 헤더가 포함되야 합니다.
int Sum(unsigned _num, ...) {//_num은 나머지 가변 인수의 갯수입니다.
int sum = 0;
va_list ap;
va_start(ap, _num);//리스트와 마지막 고정 인수를 넣어 줍니다. 가변인수를 가져올 준비를 합니다.
while (_num > 0) {
sum += va_arg(ap, int);//리스트와 가져올 가변인수의 타입을 넣어 가변인수를 가져와 더합니다.
_num--;
}
va_end(ap);//리스트를 정리합니다.
return sum;
}
void main() {
Sum(3, 1, 2, 3);//6
}
'C, C++' 카테고리의 다른 글
배열 포인터 함수 인수 (0) | 2019.12.09 |
---|---|
포인터 배열과 배열 포인터 (0) | 2019.12.08 |
함수 디폴트 인수 (0) | 2019.12.05 |
함수 오버로딩 (0) | 2019.12.03 |
변수, 함수 선언과 정의 (0) | 2019.12.03 |