Variadic functions in C

  • + 0 comments
    int  sum (int count,...) {
        int sum=0;
        va_list p;
        va_start(p, count);
        for(int i=0; i<count; i++)
        {
            sum += va_arg(p, int);
        }
        va_end(p);
        return sum;
    }
    
    int min(int count,...) {
        va_list p;
        va_start(p, count);
        int min=va_arg(p, int);
        for(int i=0; i<count-1; i++)
        {
            int temp=va_arg(p, int);
            if(temp < min)
            {
                min = temp;
            }
        }
        va_end(p);
        return min;
    }
    
    int max(int count,...) {
        va_list p;
        va_start(p, count);
        int max=va_arg(p, int);
        for(int i=0; i<count-1; i++)
        {
            int temp=va_arg(p, int);
            if(temp > max)
            {
                max = temp;
            }
        }
        va_end(p);
        return max;
    }