|
Variadic Functions in C
An Introduction |
|
Prof. David Bernstein
|
| Computer Science Department |
| bernstdh@jmu.edu |
void formal parameter:
int max(int a, int b, ...)
max(10, 5, 13, 7, 9, -1)
char array) to
provide information about the number of other parametersprintf("%d %d %d %d %d", 10, 5, 13, 7, 9)
<stdarg.h>
va_list: Data typevoid va_start(va_list ap, type last_fixed): Initialize the argument pointertype va_arg(va_list ap, type): Return the next argument (and update ap)void va_end(va_list ap): Clean upvoid va_copy(va_list destination, va_list source)
va_start() then allocates memory and
va_end() later frees memory