passing variable number of arguments

后端 未结 5 1279
野性不改
野性不改 2020-12-07 01:31

Can we pass variable number of arguments to a function in c?

5条回答
  •  星月不相逢
    2020-12-07 02:04

    Here is an example:

    #include 
    #include 
    #include 
    
    int maxof(int, ...) ;
    void f(void);
    
    int main(void){
            f();
            exit(EXIT SUCCESS);
    }
    
    int maxof(int n_args, ...){
            register int i;
            int max, a;
            va_list ap;
    
            va_start(ap, n_args);
            max = va_arg(ap, int);
            for(i = 2; i <= n_args; i++) {
                    if((a = va_arg(ap, int)) > max)
                            max = a;
            }
    
            va_end(ap);
            return max;
    }
    
    void f(void) {
            int i = 5;
            int j[256];
            j[42] = 24;
            printf("%d\n", maxof(3, i, j[42], 0));
    }
    

提交回复
热议问题