본문 바로가기

C, C++

가변 인수 함수

가변 인수 함수는 함수를 호출할 때 전달하는 인수의 개수가 정해져 있지 않은 함수입니다.

 

고정 인수(반드시 전달해야 하는 인수)는 적어도 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