va_start, va_arg, va_end
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
char com(char *data);
int main(void)
{
char* array[5] = {"000","123","234","456","789"};
//가변인자에 데이타 보내기
com(array[0],array[1],array[2],array[3],NULL);
return 0;
}
//가변인자를 선언한 com 함수
char com(char *data,...)
{
char *ptr;
int a;
int min;
int max;
va_list arg_ptr;
a = atoi(data);
min = max = a;
// 시작 - char* data 다음 parameter 변수를 va_list에 담는다.
va_start(arg_ptr, data);
while(1)
{
//가져오기 - va_list에서 데이타 가져오기( char* 는 리턴될 가변 변수의 데이타 형입니다.)
ptr = va_arg(arg_ptr,char*);
//가변인자 값이 NULL이오면 반복종료
if(!ptr) break;
a = atoi(ptr);
if(a < min) min = a;
if(a > max) max = a;
}
// 끝 - 모든 변수를 읽은 후 정상적인 리턴을 위하여 종료
va_end(arg_ptr );
printf("the max number = %d\n",max);
printf("the min number = %d\n",min);
}