几个重要的 宏/类型 定义 Macros Defined in header <stdarg.h> va_start enables access to variadic function arguments (function macro) va_arg accesses the next variadic function argument (function macro) va_copy (C99) makes a copy of the variadic function argume
我们以 printf 这个 very 熟悉的函数为例,来分析一下变参函数.先看下 printf 函数的定义: int printf(const char *fmt, ...) { int i; int len; /* va_list 即 char * */ va_list args; va_start(args, fmt); /* 内部使用了 va_arg() */ len = vsprintf(g_PCOutBuf,fmt,args); va_end(args); for (i = 0; i