이론은 다른데에서 보시구요~

그냥  "char *"를 인자로 받아가지고 사용하는 방법을 나타냈습니다.


그냥 소스로 설명.... ㅋㅋ




void func(char *p, ...);


void main()

{

func("Hi", "man", "boy");

}



void func(char *p, ...)

{

va_list ap;

char *target, buf[_MAX_DIR];

int i = 0;


target = va_start(ap, p);

vsprintf(buf, p, ap);

do

{

if (i++ != 0)

{

sprintf(buf, target);

}

// using this 

}while((target = va_arg(ap, char *)) != NULL);

va_end(ap);

}


간단히 설명 하자면, "main" 에서 함수를 사용한다. 

여기서 인자는 "Hi", "man" and "boy" 3개를 함수("func")에 넘긴다.


그다음 함수("func")에서는 다음과 같다.

va_list 인자 생성 하고 사용할 변수를 선언한다. 여기서 "i"는  내가 기술이 부족하여 첫번째는 "target"에 바로 받았고, 두번째는 "buf"에 넣기 위해서다. (이상하게 첫번째는 "vsprintf"를 사용해야 하며, 두번재는 "sprintf"를 사용하니깐.... 잘되더라....

"while"문을 조건을 주면서 다음 인자를 받아오며, "va_end"로 마친다.



+ Recent posts