가변인자

박호준·2020년 11월 13일
0

가변인자란?

함수에 들어가는 인수의 개수가 변하는 것

(... 로 인자를 받을때 사용하는 것)

ex) int printf(const char *format, ...)

<stdarg.h> 헤더파일에 들어있다

각 매크로

va_list

가변 인자의 시작주소를 가리킬 포인터이다.

va_list ap;

va_start

가변 인자를 가져올 수 있도록 포인터 설정

 void va_start(va_list ap, variable_name);
  • ap : va_list로 만들어진 포인터가 들어간다
  • variable_name : 가변인자 앞의 고정된 필수 인자가 들어온다. (format)

va_arg

가변 인자 포인터에서 특정 자료형 크기만큼 값을 가져옴

var_type va_arg(va_list ap, var_type)
  • ap : va_list로 만들어진 포인터가 들어간다
  • variable_name : 가변 인자의 자료형
  • return 값 : 현재 인수 리턴

va_end

가변 인자 처리가 끝났을 때 포인터를 NULL로 초기화

void va_end(va_lit ap);
profile
hopark

0개의 댓글