Variadic macros in c

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

#define SUM(...) sum(__VA_ARGS__)

int sum(int num_args, ...) {
    int result = 0;
    va_list args;
    va_start(args, num_args);

    for (int i = 0; i < num_args; ++i) {
        result += va_arg(args, int);
    }

    va_end(args);
    return result;
}

int main() {
    int total = SUM(1, 2, 3, 4, 5);
    printf("Sum: %d\n", total);

    return 0;
}