可变长参数函数的参数数量可变。如printf,scanf等函数都是可变长参数函数。
对C语言来说,实现可变长参数函数要用到三个宏:va_start(),va_end(),va_arg()和一个特殊类型va_list,他们被包含在stdarg.h中。
void va_start(va_list ap, T last):初始化函数
void va_end(va_list ap);释放ap所占的内存
type va_arg(ap,type);每次调用va_arg都会修改用va_list声明的对象,从而使该对象指向参数列表中的下一个参数;
举例说明:
#include<iostream>
#include<cstdarg>
int ADD(int num, ...);
int main()
{
int a = ADD( 3, 4, 5, 6);
std::cout << a << std::endl;
getchar();
}
int ADD(int num, ...)
{
va_list ap;
va_start(ap, num);
int sum = 0;
int temp;
for (int i =

本文介绍了C语言中实现可变长参数函数的方法,重点讲解了va_start、va_end、va_arg宏的使用,并通过实例演示了如何创建一个可变参数的函数。还提到了在使用va_arg时需要注意的类型限制。
最低0.47元/天 解锁文章
248

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



