이번 목적은 c++은 가변인자를 쓰면 첫번째 인자 외에는 다 가변인자 처리 된다는 것을 보여주는 것이다.
va_start 함수에서 첫번째 인자는 va_list 타입인 가변인자 포인터를 받고 두번째는 어떻게 해석할지 인자를 받는다. 세번째 함수처럼 자료형을 받으면 그 자료형으로 해석을 하고, "%s + %d =" 처럼 문자 포맷이 주어진 경우 그 포맷에 맞춰서 가변인자를 해석한다.
va_args 는 고정된 자료형으로 해석을 한 경우 자료형의 크기만큼 포인터를 이동한다.
첫번째 함수와 두번째 함수의 차이는 함수의 인자 갯수 차이이다. 가변인자 함수에 생각없이 인자 두개를 넣고 ...을 넣으면 제대로 된 결과를 얻을 수 없을 것이다.
댓글 없음:
댓글 쓰기