可変引数について調べる
#include <stdio.h> #include <stdarg.h> int dprintf(char *fmt, ...) { va_list args; char buf[256]; va_start(args, fmt); vsprintf(buf, fmt, args); va_end(args); fprintf(stderr, "DEBUG[%s]\n", buf); return (0); } int main() { dprintf("%s: %s: %d", __FILE__, __func__, __LINE__); return 0; }
$ gcc -o varg varg.c -g $ ./vargs DEBUG[arg.c: main: 21]