이런!
옮기다 한 라인을 빼먹었군요.
노인성 치매 증상이랍니다. 흑흑~
다시 올립니다.
#include <stdio.h>
#include <varargs.h>
void f(va_alist)
va_dcl /* 빼먹었던 라인 */
{
va_list args;
char *s;
va_start(args);
while (s = va_arg(args, char *))
printf("%s ", s);
va_end(args);
printf("\n");
}
void main()
{
f("one", NULL);
f("one", "two", NULL);
f("one", "two", "three", NULL);
f("one", "two", "three", "four", NULL);
}
------------
그런데 varargs.h 방식은 옛날 유닉스와 호환된다는 장점은
있지만 몇가지 문제점이 있습니다. stdargs.h 가 지원되는
환경이라면 stdargs.h를 쓰는 것이 좋습니다.
#include <stdio.h>
#include <stdarg.h>
void f(char* s,...)
{
va_list args;
va_start(args, s);
while (s) {
printf("%s ", s);
s = va_arg(args, char *);
}
va_end(args);
printf("\n");
}
void main()
{
f("one", NULL);
f("one", "two", NULL);
f("one", "two", "three", NULL);
f("one", "two", "three", "four", NULL);
}
--------------------------------------------------------------------
quack n 1.꽥꽥(오리 소리) 2.소음 lsj@fiat.snu.ac.kr
n 1.돌팔이 2.사기꾼 3.허풍쟁이 http://plaza.snu.ac.kr/~lsj
--------------------------------------------------------------------