可变参数函数

1.C标准库中有一组宏,可用于建立可变参数函数(接受数量可变参数的函数)

举例:

#include<stdarg.h>//包含stdarg.h头文件,处理可变参数函数
#include<stdio.h>
void print_ints(int args,...);//args后是可变参数
{
    va_list ap;//va_list用来保存可变参数
    va_start(ap,args);//说明可变参数从哪里开始
    int i;
    for (i = 0;i < args;i++)
        printf("ragument:%i\n",va_arg(ap,int));//va_arg接受两个值,va_list和参数类型
    va_end(ap);//用va_end告诉c做完了
}
void main()
{
    print_ints(3,79,101,32);
}

2.va_end、va_start是宏,不是函数

3.可变参数函数中必须有普通参数,这样才能把他的名字传给va_start

4.读取参数时不能超出给出的函数个数

5.需要知道要读取的参数的类型

posted @ 2016-07-31 15:06  farmerspring  阅读(206)  评论(0编辑  收藏  举报