可變引數va_list

丟的錢找到了發表於2019-05-12

在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;
}
複製程式碼

相關文章