36. 可变参数

创建日期:2024-07-10
更新日期:2025-02-01

stdarg.c

#include <stdio.h>
#include <stdarg.h>

double average(double v1, double v2, ...)
{
    va_list parg;
    double sum = v1 + v2;
    double value = 0.0;
    int count = 2;

    va_start(parg, v2);
    while ((value = va_arg(parg, double)) != 0.0)
    {
        sum += value;
        ++count;
    }
    va_end(parg);
    return sum / count;
}

int main()
{
    double ave = average(1.0, 2.0, 3.0, 4.0, 5.0, 0.0);
    printf("average: %f\n", ave);
}

简介

一个来自三线小城市的程序员开发经验总结。