C语言函数可变参数列表

  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, a);

        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: 一般什么都不做

时间: 2024-12-26 08:54:57

C语言函数可变参数列表的相关文章

PHP函数可变参数列表的具体实现方法介绍

PHP函数可变参数列表可以通过_get_args().func_num_args().func_get_arg()这三个函数来实现.我们下面就对此做了详细的介绍. AD:2014WOT全球软件技术峰会北京站 课程视频发布 也许对于PHP初级程序员来说,对于PHP函数并不能完全熟练的掌握.我们今天为大家介绍的PHP函数可变参数列表的实现方法主要是利用func_get_args().func_num_args().func_get_arg()这三个系统函数来实现的,其中func_get_args()

php课外笔记--函数可变参数列表的实现

php课外笔记--函数可变参数列表的实现 php的函数方面非常强大,但对于一些php新手来说,理解有部分困难,不能完全熟练的掌握. php培训教程中,介绍一部分函数可变参数列表的实现方法: PHP函数可变参数列表的实现方法主要是利用func_get_args().func_num_args().func_get_arg()这三个系统函数来实现的,其中func_get_args()函数以数组的形式获得参数列表,具体用法参看手册. PHP函数可变参数列表代码如下: < ?php    /*   函数

【C语言】可变参数列表。

(1)先看一个求平均值的函数 #include <stdio.h> double average(int val,int v1,int v2,int v3,int v4,int v5) { double sum = v1; if(val >= 2) sum += v2; if(val >= 3) sum += v3; if(val >= 4) sum += v4; if(val >= 5) sum += v5; return sum/val; } int main ()

(C语言)可变参数列表

C函数要在程序中用到以下这些宏: void va_start( va_list arg_ptr, prev_param ); type va_arg( va_list arg_ptr, type ); void va_end( va_list arg_ptr ); va_list:用来保存宏va_start.va_arg和va_end所需信息的一种类型.为了访问变长参数列表中的参数,必须声明 va_list类型的一个对象       定义: typedef char *  va_list; va

c语言 使用可变参数列表实现printf(my_printf)

//使用可变参数列表实现print("s\t c\n","bit-tech",'w'); #include<stdio.h> #include<stdarg.h> void int_to_char(int num) { if ((num / 10) > 0) int_to_char(num / 10); putchar(num %10+ 48); } void my_print(char p[],...) { char *str1 = 

c 语言函数可变参数的处理

/************************************************************************* > File Name: va_list.c > Author: zshh0604 > Mail: [email protected] > Created Time: 2014年10月14日 星期二 15时16分09秒 **********************************************************

可变参数列表的实现--平均值

<pre name="code" class="cpp"><span style="font-size:24px;">c语言中用可变参数列表的原因</span> <span style="font-size:18px;">cpp文件中参数可以初始化,则实参中用几个参数写几个,但是c中形参不可以初始化,所以引出可变参数列表,头文件为stdarg.h,使用宏stdarg va_lis

【C语言】用可变参数列表实现printf函数

//用可变参数列表实现printf函数 #include <stdio.h> #include <stdarg.h> void my_printf(const char *str,...) { va_list fun; va_start (fun,str); while(*str!=0) { if(*str=='c') { putchar(va_arg(fun,char )); } if(*str=='s') { puts(va_arg(fun,char *)); } str++;

C语言函数的可变参数列表

可变参数列表可通过宏来实现,这些宏定义在stdarg.h头文件中,它是标准库的一部分.这个头文件声明了一个类型va_list和三个宏----va_start,va_arg,va_end.可以声明一个类型为va_list的变量,与这几个宏配合使用,访问参数的值.参数列表的可变部分位于一个或多个普通参数(命名参数)的后面(即参数列表中至少要有一个命名参数),它在函数原型中以一个省略号表示. 例如:定义一个函数average可以计算若干个整数的平均值: 1 #include <stdarg.h> 2