카테고리 없음

가변인자 처리하는 방법 cdecl 호출규약 방식

НooпeУ 2012. 4. 7. 19:19

va_list 라는 자료형 제공


//...을 매개변수로 못넘기니깐 va_list를 사용하는 것임

int sum(int count, ....){


va_list va;

int i;

int iSum = 0;


va_start(va, count);  //va 시작 주소 저장


//남은 인자의 수만큼 데이터를 꺼내 더함

for (i = 0; i < count ; ++i) {


iSum += (int) va_arg(va, int); //va + sizeof(type) 이동후 type으로 캐스팅

}


//가변 인자 사용종료

va_end(va);

return iSum;


}