欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C语言函数可变参数列表

程序员文章站 2022-05-29 22:42:00
...

  C语言允许使用可变参数列表,我们常用的printf函数即为可变参数函数,C标准库提供了stdarg.h为我们提供了这方面支持;该头文件提供了一些类型和宏来支持可变参数列表,包括类型va_list,宏va_start、va_arg、va_end;

  可变函数参数定义方法:

#include <stdarg.h>

void func(int count,...){
        va_list ap;
        int ix, tmp;

        va_start(ap, count);
        
        for(ix=0;ix < count; ++ix){
                tmp = va_arg(ap, int);
                //process the param
        }
        
        va_end(ap);
}    

   函数的第一个参数count是必不可少的,即你定义的可变参数列表函数至少要有一个参数;

  va_list:一般会定义为char *;

  va_start(va_list ap, paramN):初始化ap的值,指向第一个可变参数

  va_arg(va_list ap, TYPE):将根据TYPE从ap指向出获得实际的值,并移动ap指针

  va_end: 一般什么都不做