va_start(ap, v)에서 두번째 인자 부터 받아오게 되는 이유.
printf 라이브러리 함수 구현 프로젝트를 다시 시작 하려는데 너무 오랜만에 보니까 가변인자 쓰는 법도 까먹었다. 그러다 보니 다시금 궁금한 점이 생겼는데, 기록 해놓으려고 한다. 가령, int 가변인자함수(int argc, ...) { va_list ap; va_start(ap, argc); int variable = va_arg(ap, int); printf("%d\n", variable); } int main() { 가변인자함수(4, 10, 20, 30, 40); } 라는 코드가 있다면, 무엇이 출력 될까? 4가 아니라 10이 출력된다. va_start로 가변인자포인터 ap를 초기화할때 어떤 식으로 받아 오느냐? 이렇게 받아온다. v의 크기만큼 뒤로 간 주소부터 첫번째 가변 인자가 등장한다. 실제..