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;
}