變動參數
範例:印出整數串列
#include <stdio.h>
#include <stdarg.h>
void printList(int head, ... ) {
va_list va;
va_start(va, head);
int i;
for(i=head ; i != -1; i=va_arg(va,int)) {
printf("%d ", i);
}
va_end(va);
}
int main( void ) {
printList(3, 7, 2, 5, 4, -1);
}
執行結果
D:\cp>gcc vaarg.c -o vaarg
D:\cp>vaarg
3 7 2 5 4
範例
#include <stdio.h>
int debug(const char *fmt, ...)
{
va_list args;
va_start(args, fmt);
return vprintf(fmt, args);
}
int main() {
debug("pi=%6.2f\n", 3.14159);
}
執行結果:
D:\cp>gcc debug.c -o debug
D:\cp>debug
pi= 3.14