A função abaixo apresenta um exemplo de utilização da funcionalidade de argumentos variáveis.
#include <stdarg.h> void miniprintf(char *fmt, ...) { va_list ap; /* ponteiro */ char *p; int ival; double dval; va_start(ap, fmt); /* aponta para o 1º arg anónimo */ for (p = fmt; *p; p++) { if (*p != '%') { /* imprime os outros caracteres */ putchar(*p); continue; } switch (*++p) { case 'd': /* argumento inteiro */ ival = va_arg(ap, int); printf("%d", ival); break; case 'f': /* argumento real */ dval = va_arg(ap, double); printf("%g", dval); break; default: exit(1); } } va_end(ap); }