如果函数的形参不确定,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
#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, ...);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
C语言可变参数详解
本文介绍了C语言中如何使用可变参数,并提供了简单的示例代码。通过使用stdarg.h库中的宏,例如va_start, va_arg和va_end,开发者可以创建接受不定数量参数的函数。

3339

被折叠的 条评论
为什么被折叠?



