想要函数使用可变参数,那就必须要包含stdarg.h
这个头文件,简单就不说了,我们重新来看看可变参数的定义和使用吧。
1.声明可变参数
可变参数的声明有两点
- 使用‘…’来代表可变参数
- 可变参数之前必须有一个命名的参数
简单说就是如果你想声明一个可变参数的函数,那么有两种形式
func(...) //错误,前面必须有一个命名的参数
func(xxx,...) //正确,xxx可以用任意的参数代替,比如char *name,int i都可以
2.定义可变参数
可变参数的定义和声明相同,两者保持一致即可
3.可变参数的使用
要使用可变参数,主要会用到下列几个函数
#include <stdarg.h>
void va_start(va_list ap, last);
type va_arg(va_list ap, type);
void va_end(va_list ap);
void va_copy(va_list dest, va_list src);
这里四个函数是参考man手册上的,最后的va_copy
没有用过,不太清楚什么情况下需要使用,麻烦各位在留言赐教
剩下的三个我们来一个一个看,这里举个简单的例子方便讲解
#include <stdio.h>
#include <std