在C/C++中處理可變引數要用到va_list,在stdarg.h這個標頭檔案中,下面是一個求和的例子。
#include <stdio.h>
#include <stdarg.h>
int sum(char *str, ...)
{
int sum = 0;
va_list list;
va_start(list, str);
int para = va_arg(list, int);
while (para)
{
sum += para;
para = va_arg(list, int);
}
va_end(list);
return sum;
}
int main(int argc, const char *argv[])
{
printf("1 + ... + 10 = %d\n", sum("sum", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10));
return 0;
}
複製程式碼