개요
정해지지 않은 갯수의 인자를 함수에 쓸 때 사용하는 인자.
strdrg.h을 이용해야 쓸 수 있다.
쓰는 방법
c
int sum (int x, ...)
{
va_list ap;
va_start(ap, x);
}
-
함수에 가변인자를 넣을 때는
…을 이용한다. -
가변인자를 가르키는 포인터인 ap를 선언한다. 타입은 va_list로 지정하면 된다.
-
함수 va_start를 이용해 포인터 ap를 초기화한다.
다음과 같이 선언한다 :
va_start(ap, 고정인자)고정인자를 넣어주는 이유는 ap에 고정인수 크기를 더해주기 때문이다.
예를 들어 다음과 같은 코드가 있다고 치자.
c
int ft_printf(char *str, ...);
mermaid
flowchart LR
node(text)
n2(인자 1)
n3(인자 2)
node-->|va_start|n2-->|va_args|n3