如果函数的形参不确定,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 函数,关于这类函数介绍:









