1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>                             // - This is required in any program that uses
                                                //   variadic functions (additional arguments).
void print_many_numbers(int num_of_nums, ...) { // - The ... stands for any number of arguments.
    va_list more_args;                          // - Get a handle to the additional arguments.
    va_start(more_args, num_of_nums);           // - This is required to access them.  Yes, it
                                                //   is weird.
    for(int i = 0; i < num_of_nums; i++) {      //
        char* next_str = va_arg(more_args, char*); // - Get the next additional argument.
        int   next_int = va_arg(more_args, int);   // - Get the next additional argument.
        printf("%s: %d\n", next_str, next_int);    // - Print it.
    }                                           //
                                                //
    va_end(more_args);                          // - This is required after you're done.
}                                               //   Yes, this is weird (too).

int main(int argc, char* argv[]) {
    print_many_numbers(1, "una", 1, "dos", 2, "tres", 3, "quatro", 4);
    return EXIT_SUCCESS;
}

© Copyright 2017 Alexander J. Quinn         This content is protected and may not be shared, uploaded, or distributed.