如果函数的形参不确定,C 函数可以使用可变参数定义,用3个点 '.' 表示(...),很多我们经常用到的 printf 等函数都是这种形式定义的如:
#include
<
stdio.h
>

printf:
int
printf(
const
char
*
format, ...);

sprintf:
int
sprintf(
char
*
str,
const
char
*
format, ...);

fprintf:
int
fprintf(FILE
*
fp,
const
char
*
format, ...);
要定义自己的可变参数函数,需要包含<stdarg.h>,其中包含 va_list 和相关宏,具体点就3个宏 va_start,
va_end,va_arg,va 表示 variable argument
简单的可变参数的用法
void
simpleprint(
char
*
format, ...)
{
va_list arg; // 定义一个 va_list 变量
va_start(arg, format); // 指向可变参数的第一个参数
vprintf(format, arg); // 调用 vprintf 函数执行
va_end(arg); // 将 arg 置为 NULL
}
上面代码中用到了 vprintf 函数,关于这类函数介绍:
#include
<
stdarg.h
>

vprintf:
vprintf(
const
char
*
format, va_list ap);
//
ap 指向第一个可变参数,功能和 printf 一样
vfprintf;
vfprintf(FILE
*
fp,
const
char
*
format, va_list ap);
//
类似 fprintf
vsprintf:
vsprintf(
char
*
str,
const
char
*
format, va_list ap);
//
类似 sprintf










va_end,va_arg,va 表示 variable argument
简单的可变参数的用法







上面代码中用到了 vprintf 函数,关于这类函数介绍:









