C - Variable Arguments
Use stdarg.h to write functions that accept a variable number of arguments.
Example
#include <stdio.h>
#include <stdarg.h>
int sum(int count, ...) {
  va_list ap; va_start(ap, count);
  int total = 0;
  for (int i = 0; i < count; i++) total += va_arg(ap, int);
  va_end(ap);
  return total;
}
int main(void) {
  printf("%d\n", sum(4, 1, 2, 3, 4)); // 10
}
Common Pitfalls
- Forgetting to call va_end.
- Type mismatches: the callee must know the types of variable args.