首页 > 代码库 > stdarg.h——用于函数接受可变参数
stdarg.h——用于函数接受可变参数
stdarg.h是C语言中C标准函数库的头文件,stdarg是由standard(标准) arguments(参数)简化而来,主要目的为让函数能够接收可变参数。
1、可变参数函数
声明可变参数函数
可变参数函数的参数数量是可变动的,它使用省略号来忽略之后的参数。例如printf函数一般。代表性的声明为:
int check(int a, double b, ...);
可变参数函数最少要有一个命名的参数,所以
char *wrong(...);
在C中是不被允许的(在C++中,这样的声明是合理的)。C中,省略符号之前必须要有逗号;而在C++中,则没有这种强制要求。
定义可变参数函数
使用相同的语法来定义:
long func(char, double, int, ...);
long func(char a, double b, int c, ...)
{
/* ... */
}
在C的旧形式中可能会出现较省略的函数定义:
long func();
char a;
double b;
long func(a, b, c, ...)
{
/* ... */
}
2、成员
stdarg.h数据类型
类型名称 | 描述 | 相容 |
va_list | 用来保存宏va_arg与宏va_end所需信息 | C89 |
stdarg.h宏
巨集名称 | 描述 | 相容 |
va_start | 使va_list指向起始的参数 | C89 |
va_arg | 检索参数 | C89 |
va_end | 释放va_list | C89 |
va_copy | 拷贝va_list的内容 | C99 |
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。