Work/Java

Ellipsis 사용하기

kevin. 2009. 11. 3. 10:29
  1. #include <stdarg.h>
  2.  
  3. int sumAll(int numCnt, ...) {                // 인자의 개수를 첫번째 argument로 넣어줘야 함.
  4.     int sum = 0;
  5.     int i = 0;
  6.     va_list argList;                         // argument 들의 list를 저장할 변수 
  7.     va_start(argList, numCnt);               // argList를 초기화
  8.  
  9.     for(i = 0; i < numCnt; i++) {
  10.         int temp = va_arg(argList, int);     // argument 받아오기   
  11.         printf("[%d] = %d\n", i, temp);
  12.         sum += temp;
  13.     }
  14.     va_end(argList);                         // 종료
  15.  
  16.     return sum;
  17. }
  18.  
  19. int main(int argc, char **argv) {
  20.     printf("sum = %d", sumAll(3, 10, 20, 30)); // 인자의 개수를 첫번째로 써주고 나머지는 가변인자
        return 0;
  21. }

 

지금이야 거의 자바만 사용하지만 예전에는 JNI를 사용했기 때문에 C도 많이 봤었는데...

가변인자를 써본적이 없는것 같다.

생각난 김에 맞게 기억하고 있는지 한번 해봤는데.. 

이거 쓸일이 있을려나... 

혹시 IPOD 개발하면서..? ^^

이 글은 스프링노트에서 작성되었습니다.