열렬히.뛰기

가변인자

Language > 프로그래밍 언어 > C > 가변인자

개요

정해지지 않은 갯수의 인자를 함수에 쓸 때 사용하는 인자.

strdrg.h을 이용해야 쓸 수 있다.

쓰는 방법

c
int sum (int x, ...)
{
		va_list ap;
		va_start(ap, x);
}
  1. 함수에 가변인자를 넣을 때는 을 이용한다.

  2. 가변인자를 가르키는 포인터인 ap를 선언한다. 타입은 va_list로 지정하면 된다.

  3. 함수 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