-
가변인자 va_list va_start va_arg va_endProgramming/C 언어 2016. 10. 28. 14:10
#include <stdio.h>
int sumArgs(int a, ...)
{
va_list args; // 가변 인자 set
int sum=0;
int arg;
sum += a;
__crt_va_start(args, a); // 가변인자 start
//va_start(args, a);
for (;;)
{
arg = __crt_va_arg(args, int); // 가변인자 get
//arg = va_arg(args, int);
if (0 == arg) // 가변인자가 0이면 종료
break;
sum += arg;
}
__crt_va_end(args); // 가변인자 end
//va_end(args);
return sum;
}
int main()
{
int nTemp;
printf("%d\n", sumArgs(1, 2, 3, 0));
printf("%d\n", sumArgs(2, 4, 6, 0));
printf("%d\n", sumArgs(100, 100, 100, 100, 100, 0));
printf("%d\n", sumArgs(100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 0));
return 0;
}